这是我第一次尝试创建一个松弛的bot,我遵循template code这个词,我没有做任何更改,只是在小故障上重新混合,正确地复制粘贴了auth令牌,事情工作得很好。
直到我将#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"
}
答案 0 :(得分:5)
不。您不会错过任何范围。只是您用来认证您的应用的用户无法发布到常规频道中。显然,管理员限制了哪些人可以在该频道中发布消息,例如仅限管理员。
使用对该频道具有发布权限的用户来验证您的应用,或切换到其他频道进行测试。
答案 1 :(得分:2)
机器人不是正式成员,所以我不得不使用用户令牌
xoxp-token
通过
发布到chat.postmessageas_user:false
并且不得不添加一个失踪的范围
chat:write:user
然后我能够使它正常工作。 感谢@girliemac帮助解决这一问题。
https://github.com/slackapi/template-announcement-approvals/issues/6
谢谢