当前位置: 首页 > 知识库问答 >
问题:

Discord-api"补丁修改公会成员"没有做任何更改,当我用Google脚本做补丁:"UrlFetchApp.fetch()"

郭星文
2023-03-14

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

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

这是我的“补丁函数”:

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"
}

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

但我们只有老角色:["500000000000000000]

共有1个答案

梁明辉
2023-03-14

这个改装怎么样?

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);
  • 请从标题中取出方法有效负载
  • 可以使用contentType代替Content-Type。在这种情况下,这不需要在标题中。
  • 在您的情况下,contentTypeApplication/json
  • 获取(url,参数)

如果这不能解决你的问题,我道歉。

当发生{"消息":"缺少权限","code": 50013}状态代码为403的错误时,请检查以下点。

>

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

    >

    >

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

    >

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

    • 修改帮会成员

  •  类似资料:
    • Git 中的一些命令是以引入的变更即提交这样的概念为中心的,这样一系列的提交,就是一系列的补丁。 这些命令以这样的方式来管理你的分支。 git cherry-pick git cherry-pick 命令用来获得在单个提交中引入的变更,然后尝试将作为一个新的提交引入到你当前分支上。 从一个分支单独一个或者两个提交而不是合并整个分支的所有变更是非常有用的。 在 变基与拣选工作流 一节中描述和演示了

    • 首先要说的,这个仅属把补丁打包而安装补丁的过程是通过运行XPLODE.EXE而实现的! 本脚本主要实现可以在安装过程调用Xplode实现马上安装的,另外可以选择重启后安装,就是写入注册实现重启后运行一次的命令!我将补丁放在SEV里面 ,SE2为另外的一些软件也可以。CLEAN.EXE为垃圾清理工具。 目录参考 ├─SEV │ └─SE2 └─TEMP └─ XPLODEREGISTRY.X4E └

    • 向app store发布新的app版本可能需要一些时间。Tabris.js允许直接向你的用户发布热更新,而无需等待app store更新。 为了符合Apple App Store的规则,修补程序必须“[…] not change the primary purpose of the app by providing features or functionality that are incons

    • 在谷歌教室API中执行方法时,当我尝试更新学生提交的内容时,返回403错误。下面是我的代码。 错误: https://classroom.googleapis.com/v1/courses/{courses_id}/courseWork/{courseWork_id}/studentSubmissions/{studentSubmissions_id}?alt=json 学生提交的内容包含以下字段

    • 分为普通补丁集,就是KB873339.exe那种集成安装的和用QFE模式安装的。 普通模式补丁脚本内容: ; 该脚本使用 HM VNISEdit 脚本编辑器向导产生 ; 安装程序初始定义常量 !define PRODUCT_NAME "霏凡WinXP-sp2至10.9补丁集" !define PRODUCT_VERSION "" !define PRODUCT_PUBLISHER "aapla

    • 问题内容: 猴子如何修补的功能。我正在尝试添加一个从页面发出的每个ajax请求返回时将被调用的函数。 我知道这听起来像一个可怕的主意,但是用例非常特殊。我想将特定的SDK与控制台(jqconsole)一起使用,但在不修改外部SDK的情况下显示控制台内ajax调用的状态和结果。 我看过这篇文章,它提供了很好的信息,但是没有任何关于猴子修补回调的内容,这似乎超出了我的JavaScript技能。 PS无