【发布时间】:2016-12-06 02:26:32
【问题描述】:
我有一个 google 脚本 作为 webapp 运行来处理 slack 应用程序 的后端。
该应用程序已验证,我有来自此的 OAUTH 令牌。
我目前可以使用上述 token 使用 chat.postMessage 通过按钮操作向频道发帖。
Actions url 指向我的 webapp 并通过 doGet 连接,从这个响应中我构造了一个 JSON 对象。
var response_payload = {
"token" : access_token,
"ts" : message_ts,
"channel" : channel_id,
"text" : "Approved! you are a winner!"
})
response_url = "https://slack.com/api/chat.update";
sendToSlack_(response_url, response_payload)
通过以下功能发布:
function sendToSlack_(url,payload) {
var options = {
"method" : "post",
"contentType" : "application/json;charset=iso-8859-1",
"payload" : JSON.stringify(payload)
};
return UrlFetchApp.fetch(url, options)
}
然而返回的是以下内容:
{"ok":false,"error":"not_authed"}
除了以下内容之外,我找不到任何关于此错误的文档
Sending JSON to Slack in a HTTP POST request
但是,这是关于我的实现中正常工作的 chat.postMessage 请求。
【问题讨论】:
-
能否提供您的html源代码?
-
这都是在谷歌脚本(javaScript)中完成的,没有html..
-
这个项目是一个类似斜杠命令的 webhook 吗?此代码存在一些问题,例如您使用的是 POST 而不是 GET。参数在 url 中发送,而不是在帖子正文中。但是,如果这是从 doGet 调用的 webhook,您将验证 webhook 请求令牌,然后使用 json 对象通过内容服务响应响应。如果这就是你想要做的,我有一个例子。
-
不,我有一个具有
chat:write:botscope 的应用程序集成,虽然它确实有一个钩子,但我没有使用它,而是指导您的chat.postMessage和chat.update。有趣的是,整个事情现在似乎正在工作..我即将发布关于此的更新.. -
对于任何类型的令牌,目前只有
application/x-www-form-urlencoded可以正常工作。
标签: json google-apps-script slack-api