You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP调用Discord API移动频道分类遇LIST_TYPE_CONVERT错误求助

解决Discord频道移动分类的API错误问题

你遇到的Invalid Form Body(错误码50035)和LIST_TYPE_CONVERT提示,核心问题是请求体格式不符合Discord API要求:

PATCH /guilds/{guild_id}/channels 端点要求请求体是数组结构(即使只操作单个频道),而你直接传了单个对象,导致API无法解析为List类型。

修正后的代码

<?php 
// 将频道移动到归档分类
$url = "https://discord.com/api/v10/guilds/$discordID/channels";

// 必须用外层数组包裹频道配置对象
$data = [
    [
        'id' => 'xxxxx', // 目标频道ID
        'parent_id' => "xxxxxx" // 目标分类ID
    ]
];
$data_json = json_encode($data);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bot xxxxxxxx',
    'Content-Type: application/json'
]);
// 移除手动设置的Content-Length,curl会自动处理
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
echo $response;
curl_close($ch);
?>

关键修正点

  • 把单个频道的配置对象包裹进外层数组,满足API对ListType的要求
  • 移除手动计算的Content-Length请求头,避免因字符串编码差异导致的长度错误,curl会自动生成正确的头信息
  • 如果需要批量调整多个频道的分类或位置,只需在外层数组中添加更多包含id和对应配置的对象即可

内容的提问来源于stack exchange,提问作者MOHAMED AL YOUSUFI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 16:18:21