获取 CHAT_WRITE_FORBIDDEN 将 MadelineProto 与 Telegram API 结合使用
Get CHAT_WRITE_FORBIDDEN using MadelineProto with Telegram API
我正在使用 php 的 MadelineProto 项目与 Telegram API 进行交互。
也许这个错误与 MadelineProto 无关......无论如何,我成功地创建了一个超级组但是我之后调用的任何其他方法都会给我一个 CHAT_WRITE_FORBIDDEN 错误。
在 Telegram 文档中找不到任何有关我收到此错误的原因以及解决方法的信息。
这是我的代码:
$MadelineProto = new MadelineProtoAPI('session.madeline', $settings);
$MadelineProto->async(false);
$MadelineProto->start();
// successfully create the group
$updates = $MadelineProto->channels->createChannel([
'megagroup' => true,
'title' => 'Test group',
'about' => 'Test group description',
]);
foreach($updates as $update) {
// try to invite other users --> CHAT_WRITE_FORBIDDEN
$updates = $MadelineProto->channels->inviteToChannel([
'channel' => $update,
'users' => ['@#######']
]);
// try to change admin rights --> CHAT_WRITE_FORBIDDEN
$updates = $MadelineProto->channels->editAdmin([
'channel' => $update,
'user_id' => '@#######',
'admin_rights' => [
'_' => 'chatAdminRights',
'change_info' => true,
'post_messages' => true,
'edit_messages' => true,
'delete_messages' => true,
'ban_users' => true,
'invite_users' => true,
'pin_messages' => true,
'add_admins' => true,
'anonymous' => true,
],
'rank' => ''
]);
}
我做错了什么?
谢谢
似乎问题出在传递给 'channel' 属性 的值。我没有传递 $update 变量,而是以“channel#1234567890”的形式直接传递了频道 ID,最终从 Telegram 得到了正确答案。
我正在使用 php 的 MadelineProto 项目与 Telegram API 进行交互。 也许这个错误与 MadelineProto 无关......无论如何,我成功地创建了一个超级组但是我之后调用的任何其他方法都会给我一个 CHAT_WRITE_FORBIDDEN 错误。 在 Telegram 文档中找不到任何有关我收到此错误的原因以及解决方法的信息。
这是我的代码:
$MadelineProto = new MadelineProtoAPI('session.madeline', $settings);
$MadelineProto->async(false);
$MadelineProto->start();
// successfully create the group
$updates = $MadelineProto->channels->createChannel([
'megagroup' => true,
'title' => 'Test group',
'about' => 'Test group description',
]);
foreach($updates as $update) {
// try to invite other users --> CHAT_WRITE_FORBIDDEN
$updates = $MadelineProto->channels->inviteToChannel([
'channel' => $update,
'users' => ['@#######']
]);
// try to change admin rights --> CHAT_WRITE_FORBIDDEN
$updates = $MadelineProto->channels->editAdmin([
'channel' => $update,
'user_id' => '@#######',
'admin_rights' => [
'_' => 'chatAdminRights',
'change_info' => true,
'post_messages' => true,
'edit_messages' => true,
'delete_messages' => true,
'ban_users' => true,
'invite_users' => true,
'pin_messages' => true,
'add_admins' => true,
'anonymous' => true,
],
'rank' => ''
]);
}
我做错了什么?
谢谢
似乎问题出在传递给 'channel' 属性 的值。我没有传递 $update 变量,而是以“channel#1234567890”的形式直接传递了频道 ID,最终从 Telegram 得到了正确答案。