【发布时间】:2019-04-26 16:59:30
【问题描述】:
这是我第一次尝试创建一个 slack 机器人,我正在关注这个 template code 这个词,我没有做任何更改,只是在故障上重新混合,正确复制粘贴了身份验证令牌,一切正常美好的。
直到我将#general 频道限制为Full Member 用户。
这是我在故障日志中看到的错误。
PostMessage Error: restricted_action
代码如下:
const postAnnouncementToChannel = (user, announcement) => {
const { title, details, channel } = announcement;
let announcementData = {
token: process.env.SLACK_ACCESS_TOKEN,
channel: channel,
text: `:loudspeaker: Announcement from: <@${user}>`,
attachments: JSON.stringify([
{
title: title,
text: details,
footer: 'DM me to make announcements.'
}
])
};
send(announcementData, user);
}
const send = async(data) => {
data.as_user = true; // send DM as a bot, not Slackbot
const result = await axios.post(`${apiUrl}/chat.postMessage`, qs.stringify(data))
try {
if(result.data.error) console.log(`PostMessage Error: ${result.data.error}`);
} catch(err) {
console.log(err);
}
}
通过测试
https://api.slack.com/methods/chat.postMessage/test 使用 bot-token 说
{
"ok": false,
"error": "restricted_action"
}
使用 xoxp-token 对此进行测试得到:-
{
"ok": false,
"error": "missing_scope",
"needed": "chat:write:user",
"provided": "identify,bot"
}
【问题讨论】:
-
能否请您也发布您的实际代码?
-
github.com/slackapi/template-announcement-approvals 是我的故障代码,未对代码进行任何更改。
-
到目前为止,我无法通过 Postman 重现此错误。如果您将#general 的发布权限限制为“仅限工作区所有者和管理员”,则会发生这种情况,但如果将其限制为“所有人,除了客人”,它会正常工作。
-
让我试试这个然后回复你。感谢您的回复。
-
好的。如果您可以为问题添加更多详细信息和说明,这将有很大帮助。我还在下面就我的回答提出了一些问题。我们拥有的详细信息越多,重现和修复错误就越容易。