【问题标题】:Error (403) when using UrlFetchApp to address an endpoint from https://discord.com使用 UrlFetchApp 从 https://discord.com 寻址端点时出现错误 (403)
【发布时间】:2020-11-01 14:21:31
【问题描述】:

Discord 最近宣布他们将其 API 从 discordapp.com 移至 discord.com。

我正在重写我的一些代码(Google Apps 脚本项目)来解决这个问题,但我遇到了无法访问discord.com-endpoints 的问题,例如:

function example(){
  var headers =
  {
    "Authorization": "Bot AbCdEfG123",
    "Accept": "*/*"
  };
  var options =
  {
    "method": "GET",
    "headers": headers,
  };
  var response = UrlFetchApp.fetch("https://discord.com/api/guilds/"+GUILD_ID+"/members/"+MEMBER_ID, options);
}

即使使用旧的discordapp.com 也可以正常工作。 使用discord.com 会导致403 错误,使用error code 1020

进一步调查:

  • 通过 Postman 或 curl 执行相同的请求(针对 discord.com)是成功的,所以看起来问题出在 UrlFetchApp
  • 通过在标题中添加"Accept": "*/*",我发现错误来自Cloudflare,以及消息Please enable cookies
  • 将用户代理添加到标头,例如"User-Agent": "MyBot/1.0" 不会改变任何东西

我不知道如何处理这个问题,我想知道是否有其他人遇到过这个问题。感谢您的帮助。

编辑:

这是要求的文件:

有效的 curl 代码是

curl -H "Authorization: Bot [...]" "https://discord.com/api/guilds/[...]/members/[...]"

用省略号 [...] 表示令牌或 ID

编辑 2:

Google Apps 脚本使用以下不可修改的用户代理:

Mozilla/5.0 (compatible; Google-Apps-Script; beanserver; +https://script.google.com; id: [...])

即使我只将 Mozilla 部分纳入我的 curl 命令,即

curl -H "Authorization: Bot [...]" -H "user-agent: Mozilla" "https://discord.com/api/guilds/[...]/members/[...]"

我得到相同的1020 错误代码。

【问题讨论】:

  • Edit 提供1.文档链接和2.卷曲代码
  • 您错过了Bot 和授权标头中令牌之前的空格吗?
  • 感谢您的想法。 Bot 就在那里,就在它所属的地方。
  • Apps 脚本不支持 User-Agent 标头。但我不确定这是否有问题。 403 可能意味着您错过了授权标头或错过了Bot 。做edit你的问题代码,以明确你在正确的位置使用Bot 。还要在代码中添加Accept: 标头。 Please enable cookies. 表示您已从错误页面重定向到 html 页面。
  • 检查您的错误代码是否来自以下任何一个:discord.com/developers/docs/topics/opcodes-and-status-codes

标签: google-apps-script discord cloudflare http-status-code-403


【解决方案1】:

您需要按照这种格式设置用户代理https://discord.com/developers/docs/reference#user-agent

User-Agent: DiscordBot ($url, $versionNumber)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多