【发布时间】:2021-06-04 15:10:52
【问题描述】:
我正在寻找从 Chrome 扩展程序向 Discord 频道发送消息的最简单方法。
我在 Discord Developer Portal 上注册了一个 Discord 应用程序和相应的机器人。我在那里有机器人令牌。
找到this SO question。尝试了 Tobyhn 建议的代码,结果如下:
var token = "my bot token here";
var channel_id = "my channel id here";
var channel_url = `https://discord.com/api/v8/channels/${channel_id}/messages`
request = new XMLHttpRequest();
request.withCredentials = true;
request.open("POST", channel_url);
request.setRequestHeader("authorization", token);
request.setRequestHeader("accept", "/");
request.setRequestHeader("authority", "discord.com");
request.setRequestHeader("content-type", "application/json");
request.send(JSON.stringify({ content: message }));
代码只是放置在后台脚本中。
Chrome 使用标志 --disable-web-security --disable-gpu --user-data-dir=~\chromeTemp" 运行以避免 CORS 检查。
此外,我绝对确定 bot 在该频道所在的 Discord 服务器上被授予管理员权限,因此必须可以编写消息。
但是,在执行时服务器响应代码 401:
code: 0
message: "401: Unauthorized"
我也尝试从 Yet Another Rest Client 发送相同的请求,结果相同。
如何更改请求才能成功授权并发送消息?
提供额外的上下文:当我在 discord.js 库的帮助下使用同一个机器人时,它成功地将消息发送到同一台服务器上的各个通道。
我也阅读了this 线程,但似乎没有找到解决方案,并且没有任何内容似乎适用于我的情况。
非常感谢!
【问题讨论】:
标签: api post google-chrome-extension discord http-status-code-401