Articles of slack api

在Express中响应数据到Slack url

在我的Node后端,我有以下路由与快递中间件。 我的应用程序使用Slack反斜杠api发布一个链接到用户的频道。 当用户点击它时,在heroku上托pipe的angular度应用程序上打开一个表单。 我想要做的是在表单提交时更新Slack用户。 所以这个问题,我怎样才能发送一个post请求松弛url当下面的路线被触发(很明显res是指向/更新)。 我已经研究了很多,并尝试重写头文件,并使用低级别的http方法,但我有一种感觉,有一个更好的解决scheme。 非常感谢您的帮助。 app.post("/update", function(req,res,next) { res url -> http://slackapi/12345/ res.json({"text":"hello":} })

Slack Oauth /授权API调用

我是OAuth(和Slack API)的新手,对Slack的OAuth Flow的步骤1有疑问。 它说:“您的networking或移动应用程序应该redirect用户到以下url: https : //slack.com/oauth/authorize ”。 起初我以为我应该做一个XHR请求,但后来明白,这不是我想要的。 经过更多的研究,我发现最初的oauth / authorize请求应该作为浏览器中的直接请求发送。 我的问题是我不能开始想象这应该如何完成。 我一直在引用本教程的部分内容(向下滚动到“Web服务器应用程序”部分),但是这并不能帮助我将自己的头围绕oauth / authorize请求。 所以基本上,我正在寻找一个人来更好地向我解释这个初步申请应该怎么做。 任何和所有的帮助,非常感谢! 提前致谢

如何在Botkit消息处理程序中获取原始消息文本(例如电子邮件地址)

在botkit中,我设置了message_received或其他处理程序。 当我收到消息时,其text属性应该包含用户写的实际消息。 不幸的是,当这个消息包含例如电子邮件地址,我得到这个消息松弛格式。 例: 用户input: Hey, send an email to foo@bar.com botkit给我: Hey, send an email to <mailto:foo@bar.com|foo@bar.com> 有没有办法以原始forms得到它,还是我应该用手解开呢?

Slack API channels.archive没有find频道

我可以成功地创造一个新的渠道。 当我想将我的频道移动到存档时,我得到一个错误代码为channel_not_found的响应,而我100%确定我的频道名称是正确的。 有谁知道我为什么收到这个? 我在Node.js中使用slack-node slackController.slack.api('channels.archive', { channel: "#test123" }, function (err, response) { console.log(response); return callback("ok"); });

Slack API Channel.history

我有一个NodeJS文件的两个API调用松懈,通过api张贴消息工作正常,但试图获得渠道历史返回JSON { error: "channel_not_found", ok: false } 。 令牌是硬编码的。 chat.js Chat.sendMessage = function (text, callback) { slack.api('chat.postMessage', { text:text, as_user:true, channel:'#webhooksapi' }, function(err, response){ callback(null,response); }); } //Getting error on this function Chat.getMessage = function (channel, callback){ slack.api('channels.history', { token:apiToken, channel:'#webhooksapi' }, function(err, response){ callback(null, response); }); }

无法parsing的类名使用passport-slack节点库

我试图使用passport-slack库,并且对node.js是非常新的(虽然不是一般的编程)。 在自述文件中是以下示例代码: passport.use(new SlackStrategy({ clientID: CLIENT_ID, clientSecret: CLIENT_SECRET, scope: "users:write" }, function(accessToken, refreshToken, profile, done) { User.findOrCreate({ SlackId: profile.id }, function (err, user) { return done(err, user); }); } )); 混淆了我的部分是SlackStrategy类的标识符 – 我没有看到它从任何passport-slack中的代码导出,我无法弄清楚我应该如何解决它。 我正在做一个: var passport-slack = require('passport-slack'); 在我的代码的顶部。

从Slack API获取用户名

我正在构build一个需要监听环境关键字的slackbot,但要检查以确保特定的用户编写了关键字。 我正试图用这个testing命令: controller.hears(['texas'], 'ambient', function(bot, message) { username = users.info.name; bot.reply(message, username); }); 最后,我想运行条件逻辑,以确保用户名匹配我想要机器人回应的用户。 这虽然不起作用; 我使用API​​错误? 如何检索用户名,以及如何检查以确保它是正确的用户?

松弛斜线命令:设置机器人名称和图标

我试图做一个节点松散的机器人。 当我从Slack上路时, app.get('/testbot', testbot); 我打电话给testbot: testbot.js: postToSlack(botPayload, function (error, status, body) { console.log('successfully posted to slack'); }); 我将我的有效载荷对象发布到他们的Slack API中指定的Webhook URL:“ https://hooks.slack.com/services/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 ” function postToSlack (payload, callback) { var val = JSON.stringify(payload); request({ uri: 'https://hooks.slack.com/services/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&payload=val', method: 'POST' }, function (error, response, body) { if (error) { return callback(error); } console.log('RESPONSE', body); //takes forever, then eventually comes […]

松弛的RTM消息

我用node.js来构build我的松散机器人。 我用@slack/client 。 它的工作很好。 现在我有一个JSON格式的数据通过slack message builder 。 喜欢这个, { "attachments": [ { "fallback": "Required plain-text summary of the attachment.", "color": "#36a64f", "pretext": "Optional text that appears above the attachment block", "author_name": "Bobby Tables", "author_link": "http://flickr.com/bobby/", "author_icon": "http://flickr.com/icons/bobby.jpg", "title": "Slack API Documentation", "title_link": "https://api.slack.com/", "text": "Optional text that appears within the attachment", "fields": [ { […]

多个require()来自同一个模块中的同一个库

我正在寻找NodeJs的@ slack / client npm软件包的源代码,并在顶部看到他们有这个: var forEach = require('lodash').forEach; var bind = require('lodash').bind; var has = require('lodash').has; var isArray = require('lodash').isArray; var isEmpty = require('lodash').isEmpty; var isObject = require('lodash').isObject; 当樱桃采用所有这些从lodash模块中挑选的时候,你可以通过只包含整个库文件,然后使用你需要的方法来使它更简洁。 // Include the whole lib var _ = require('lodash'); // And later if (_.isObject(…)) // etc 这不像他们多次使用每种方法。 实际上,大多数只使用一次或两次。 而且,我的理解是,即使部分需要部分模块,整个事情也是eval() ,所以内存和性能都没有优势。 我觉得这个软件包写得很好,所以我很好奇,为什么他们select这样做。