云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

对象存储_多线云主机_限时特惠

小七 141 0

大数据平台_有哪些_文件上传云存储

了解如何构建一个使用Airtable作为CMS的斜杠命令应用程序。如果你在两个应用程序之间来回跳转,那就停止吧。当你从一封邮件切换到另一封邮件时,你会注意到一封邮件击中了你的收件箱。15分钟的邮件分类之后,你醒了过来,完全忘记了你当初在做什么。现代职场的乐趣。在Airtable,我们希望尽我们的一份力来消除上下文切换的危害。我们在这里消磨了一整天,所以我们尽量在频道中保留尽可能多的内容和内容。实际上,您可以使用我们预先构建的集成将通知从Airtable发送到Slack。但这只会朝着一个方向发展(不透气→松弛)。如果你想从Slack搜索一个空降基地,并将相关记录直接返回给你的频道怎么办?例如,假设您在Airtable中有一个CRM,您希望将记录快速拉入空闲频道,以便讨论各种交易的进展情况。通常,这需要仔细研究我们的API文档(以及Slack文档)。谢天谢地,我们为你做了那么多辛苦的工作。继续阅读,几分钟后您将学习如何构建一个斜杠命令应用程序(使用Airtable作为CMS)。安装程序首先,你需要一个Airtable帐户和Airtable库来搜索。如果您愿意,可以使用此CRM模板。但是任何你感兴趣的查询库都可以正常工作!第二,我们将在这个应用程序中使用故障。你可以在这里重新组合我们为你准备的节点应用程序。(或者,如果你想跳过代码,开始调整,你可以在这里重新混合一个完整的Node应用程序版本。)如果你不熟悉的话,看看这个小故障应用程序。除了清理应用程序工作区,我们还做了一些其他的事情。首先,我们添加了body解析器包。我们希望将来自请求的数据格式化为json,并使用body解析器来实现这一点。其次,我们添加了airtable包,大数据云计算人工智能,我们将使用它从airtable库中获取记录。第三,我们添加了request包,在获取Airtable记录之后,我们将使用它向Slack发送一条消息。处理请求我们开始吧!首先创建一个新的post请求处理程序,路径为"/slack",如下所示:应用程序发布("/slack",功能(req,res){回复发送("测试响应");});这使我们能够在任何时候对你的故障应用程序+/slack的基本URL发出请求时运行一些代码。创建Slack应用程序现在我们需要在Slack中创建应用程序。转到Slack,单击Createaslack应用程序,然后为你的应用程序选择一个名称和工作区。选择"斜杠命令应用程序",然后单击以创建新命令。键入要使用的命令,我们将使用"/airtable"键入请求URL这是您的故障应用程序的基本URL+"/slack"您可以通过单击左上角的下拉列表找到故障应用程序的基本URL:单击"保存"。接下来,云服务器哪里好,您需要在Slack工作区中安装该应用程序。前往"设置"→"基本信息"→"将应用程序安装到工作区"。在Slack中,使用斜杠命令"/airtable."发送一条消息。如果所有的连接都正确,您应该会收到一个显示"testresponse"的响应在继续之前,我们想为这个设置添加一点安全性。如果一个请求实际上不是来自Slack的,我们不想响应它。我们需要在发送任何Airtable数据之前验证请求是否来自Slack工作区。为此,请先转到"设置"→"基本信息"→"应用凭据"→"验证令牌"获取应用的验证令牌。在.env on Glitch中,在以下行添加Slack验证令牌:SLACK_VERIFICATION_TOKEN={SLACK应用程序的验证令牌}在"/slack"请求处理程序中,通过添加以下代码验证slack发送的令牌是否与我们的令牌匹配:常量标记=请求体令牌;如果(代币!== process.env.SLACK_验证_令牌) {资源状态(403).send('Forbidden');返回;}一旦我们确认这个请求来自Slack,我们应该立即响应。稍后,我们将添加一些代码从Airtable获取记录,但我们希望立即响应以确保不会遇到Slack超时(3秒)的情况。就在我们刚刚添加的代码下面(代替我们的测试响应),加载项://从请求中拉出搜索查询。const searchQuery=请求正文;//立即响应请求,淘客佣金,告诉用户我们正在搜索记录。//通过立即响应,我们可以确保不会达到Slack的3秒超时。资源状态(201).json({response_type:'短暂',text:`searchQuery}匹配的记录`,});在混合物中添加透气性现在我们的Slack应用程序已经设置好了,让我们邀请Airtable来参加聚会吧!我们可以使用Airtable API让这个应用程序与Airtable对话。您可以通过导航到Airtable帐户页并单击"生成API密钥"找到Airtable API密钥注意:你应该小心你的API密钥。如果其他人要审阅此代码,则应创建一个单独的帐户,有哪些云服务器,将该帐户作为只读协作者添加到基中,并使用只读协作者的API密钥。回到小故障,在.env中,添加AIRTABLE_API_KEY={your API KEY}。我们还希望确保斜杠命令应用程序对正确的基和表说话。在Airtable中,您可以从API文档中找到要查询的特定基的基ID。基本ID是以"app"开头的字符串。您可以从创建的基的URL中找到表ID。表ID是以"tbl"开头的字符串。在.env中添加AIRTABLE_BASE_ID={your BASE ID}和AIRTABLE\utable_ID={your TABLE ID}回到服务器.js并在所有请求处理程序的上方添加以下行:const base=新Airtable().base(process.env.AIRTABLE_基_ID);在我们的初始响应下面,添加以下代码。这将从Airtable获取记录,然后向Slack发送一个新请求,告诉Slack将消息发送到Slack通道。//Slack为我们提供了一个响应URL,我们可以使用它在//最初的反应,让我们把它拔出来。const responseUrl=请求正文响应\u url;基地(process.env.AIRTABLE_表_ID)。选择({//指定"string"cellFormat,以便所有值都是人类可读的。cellFormat:'字符串',//当使用'string'cellFormat时,我们必须传递userLocale和时区//同样,这样日期的格式也会正确。userLocale:'en-US',时区:'美国/洛杉矶',超级返利,}).all()。然后(记录=>{请求({method:'发布',uri:响应URL,正文:{//将响应类型设置为"in_channel",这样每个人都可以看到它。如果您希望响应仅对//发出命令的用户,将其更改为"ephemeral"。response_type:'在频道',文本:`Found${记录.长度}记录!"`,},json:对,});}).catch(错误=>{//收到一个错误,所以让我们用一条消息来响应,告诉用户请求失败了。请求({method:'发布',uri:响应URL,正文:{//将响应类型设为"ephemeral",以便整个通道(仅对发出命令的用户)不可见。response_type:'短暂',text:'无法从Airtable获取记录',},json:对,});});现在,在应用程序响应告诉用户它正在搜索记录之后,应用程序将计算您已标识的特定表中的记录数。让我们再测试一下。点击斜线命令。它应该首先以"搜索匹配[search query]的记录"响应,然后用"Found[#of records in the table]records!"构造公式这才是真正乐趣的开始。我们需要构造一个Airtable公式,我们将使用它来根据搜索查询过滤我们的库中的记录。让我们想想我们需要做什么。我们希望创建一个过滤器,如果在该记录的任何字段中找到搜索查询,则该过滤器将返回true。考虑到这一点,在Airtable中编写的公式应该如下所示:或(SEARCH({lowercase SEARCH query},LOWER({field 1}))>0,搜索({lowercase SEARCH query},LOWER({field 2}))>0,…)让我们把这个公式分解一下。(您也可以查看我们关于Airtable公式的支持文章,以更深入地描述每个函数。)SEARCH函数在小写(使用LOWER函数)字段名中搜索搜索查询的匹配项。如果返回大于零的数字,我们知道搜索查询字符串是在字段名中找到的。这很简单,但我们希望跨多个字段名搜索搜索查询。如果在任何字段名中找到搜索查询,我们希望返回一个肯定的结果。为此,我们使用OR函数。现在,将这个搜索机制添加到应用程序中。首先,在const base=。。。刚刚添加的代码,并列出要搜索的所有字段。const fieldNamesToSearch=[//添加要搜索的所有字段的名称。//在这里,我们只是搜索"名称"字段。'姓名',];在"/slack"处理程序中(在Airtable API调用之前),将搜索查询转换为小写。常量小写搜索查询=searchQuery.toLowerCase();现在构造搜索语句:const searchStatements=[];for(fieldNamesToSearch的const fieldName){searchStatements.push(`SEARCH('${lowerCaseSearchQuery}',LOWER({${fieldName}}))>0`);}最后,构造公式:常量公式=`OR(${searchStatements.join(', ')})`;使用公式好的,现在我们要使用filterByFormula参数(来自Airtable API)来只选择与我们刚刚构建的过滤器匹配的记录。filterByFormula参数根据表中的每条记录计算公式。公式返回true的任何记录都将包含在结果中。公式返回false的任何记录都不会。我们通过更新c