Javascript Discord api“;补丁修改帮会成员“;没有';当我使用谷歌脚本制作补丁时,我不会做任何更改:“;UrlFetchApp.fetch()和#x201D;

Javascript Discord api“;补丁修改帮会成员“;没有';当我使用谷歌脚本制作补丁时,我不会做任何更改:“;UrlFetchApp.fetch()和#x201D;,javascript,api,google-apps-script,oauth-2.0,discord,Javascript,Api,Google Apps Script,Oauth 2.0,Discord,我正在建立一个api连接。我已经为我的应用程序提供了OAuth身份验证和bot。现在我想对discord帮会成员角色进行更改 我做了一个补丁,它返回一个204。根据discord的说法:“成功时返回204个空响应”。但是,服务器没有得到更新。角色没有变化 这是我的“补丁函数”: 以下是我的回答:“params”: 我们希望将角色更新为: [“60000000000000000”、“60000000000000000”] 但我们只有旧角色: [“5000000000000”]这次修改怎么样 发件人

我正在建立一个api连接。我已经为我的应用程序提供了OAuth身份验证和bot。现在我想对discord帮会成员角色进行更改

我做了一个补丁,它返回一个204。根据discord的说法:“成功时返回204个空响应”。但是,服务器没有得到更新。角色没有变化

这是我的“补丁函数”:

以下是我的回答:“params”:

我们希望将角色更新为: [“60000000000000000”、“60000000000000000”]

但我们只有旧角色:
[“5000000000000”]

这次修改怎么样

发件人: 致:
  • 请从标题中输出
    方法
    有效负载
  • 您可以使用
    contentType
    而不是
    Content-Type
    。在这种情况下,不需要在标题中显示
  • 在您的例子中,
    contentType
    application/json
参考:
如果这不能解决你的问题,我道歉

编辑: 当出现状态代码为
403
{“message”:“Missing Permissions”,“code”:50013}
错误时,请检查以下几点

  • 在“服务器设置”中,打开“角色”

    • 角色的顺序对您的处境很重要。
    • 当假定Bot的角色和您想要提供的角色分别为“ForBot”和“sampleRole1”以及“sampleRole2”时,如果角色顺序如下,则会出现状态代码为
      403
      的错误
      {message:“Missing Permissions”,“code”:50013}

      • 来自

    • 如果角色顺序如下所示,则状态代码
      204
      不会发生错误。这个请求有效

从以上几点开始,请确认您设置的角色顺序。例如,请通过拖放将bot的角色移动到所有角色的顶部,然后再次尝试运行脚本。修改角色顺序时,请不要忘记保存

参考:

我试过你的版本。现在我更接近这个问题。Discord返回403{“message”:“Missing Permissions”,“code”:50013}我不知道我错过了什么权限。我尝试了不和谐的范围:识别,行会,行会。加入,机器人。机器人权限:管理服务器、管理角色、创建即时邀请。与Discord api相同的权限问题是:在/guilds/{Guild.id}/members/{user.id}/roles/{Role.id}@Luigi Diablo上添加帮会成员角色谢谢您的回复。从回复的错误消息中,可以发现请求与修改后的脚本一起工作。实际上,在我的环境中,我可以确认修改后的脚本工作正常。我认为您新发行的
缺少权限
是由于您的设置造成的。因此,我在回答中添加了检查点。你能确认一下吗?如果这不能解决你的问题,我道歉。你正好解决了我的问题。有你的帮助,我可以解决这个问题。非常感谢你。你是一个非常友好、技术高超的家伙!祝你度过愉快的一天,保持这种状态。@Luigi Diablo欢迎你。谢谢你让我知道。我很高兴你的问题解决了。如果您的问题已解决,请按“接受”按钮。与您有相同问题的其他人也可以将您的问题作为可以解决的问题。我认为你的问题和解决方案对他们会有帮助。如果你找不到按钮,尽管告诉我。
function patchGuildMemberRole( userId, callback) {
  var API_ModifyGuildMember_URL = 'https://discordapp.com/api/guilds/500000000000000000/members/' + userId;
  data = {
    "roles": ["600000000000000000", "600000000000000000"]
  };
  header = {
    'method' : 'PATCH',
    'Authorization': 'Bot' + ' ' + 'XXXXXXXXXXXXXXXXXXXXXXXXXX',
    'followRedirects' : true,
    'Content-Type': 'application/x-www-form-urlencoded',
    'payload' : data
  };
  var result = UrlFetchApp.fetch(API_ModifyGuildMember_URL, {headers: header});
  console.log("result");
  console.log(result);
  if (result.getResponseCode() == 204 || result.getResponseCode() == 200) {
    var params = JSON.parse(result.getContentText());
    return callback(params);
  } else {
    return callback(error('API fetch error'));
  }
}

{
  "nick": "Kevin - Kevin",
  "user": {
    "username": "Kevin",
    "discriminator": "6666",
    "id": "500000000000000000", "avatar": "zzzzzzzzzzzzzz80acd5bb1a005"
  },
  "roles": ["500000000000000000"],
  "premium_since": null,
  "deaf": false,
  "mute": false,
  "joined_at": "2016-04-00T00:00:00.000000+00:00"
}
header = {
  'method' : 'PATCH',
  'Authorization': 'Bot' + ' ' + 'XXXXXXXXXXXXXXXXXXXXXXXXXX',
  'followRedirects' : true,
  'Content-Type': 'application/x-www-form-urlencoded',
  'payload' : data
};
var result = UrlFetchApp.fetch(API_ModifyGuildMember_URL, {headers: header});
var params = {
  method: 'PATCH',
  headers: {Authorization: 'Bot' + ' ' + 'XXXXXXXXXXXXXXXXXXXXXXXXXX'},
  contentType: 'application/json',
  payload : JSON.stringify(data)
};
var result = UrlFetchApp.fetch(API_ModifyGuildMember_URL, params);