小编Ste*_*ane的帖子

在电报上发送消息:“禁止:机器人不是超级群聊天的成员”或“禁止:机器人不是频道聊天的成员”

我正在尝试在电报聊天中发送消息。我希望电报设置只能通过官方 UI 完成,因为我希望它可能由最终用户完成。

这是我所做的电报设置:

  • XXXXXXX_bot通过获取令牌与 Botfather 创建了机器人:没问题
  • 我创建了一个频道:
    • 点击“新频道”
    • 频道名称:TestChannel
    • 点击下一步”
    • 选择“私人频道”
    • 点击“保存”
    • 添加我的机器人XXXXXXX_bot
    • 点击“设为管理员”
    • 点击“保存”
  • 我创建聊天:
    • 打开通道TestChannel
    • 在频道菜单上,选择“管理频道”
    • 在讨论中点击“添加群组”
    • 点击“创建新组”
    • 团队名字:TestChannelChat
    • 点击“创建”
    • 点击“保存”
  • 我将机器人添加到新组中:
    • 打开群组TestChannelChat
    • 在右侧面板上,我单击“添加成员”
    • 添加我的机器人XXXXXXX_bot
    • 点击“添加”
    • 右键单击聊天中新添加的用户,然后选择“晋升为管理员”
    • 点击“保存”

以下是频道管理员的设置:

在此输入图像描述

最终,电报 UI 中的聊天/群组设置如下:

在此输入图像描述

我进行以下 http 调用:

GET https://api.telegram.org/botXXXXXXTOKENXXXXXXX/sendMessage?chat_id=@TestChannelChat&text=coucou
Run Code Online (Sandbox Code Playgroud)

这给了我以下答案:

GET https://api.telegram.org/botXXXXXXTOKENXXXXXXX/sendMessage?chat_id=@TestChannelChat&text=coucou
Run Code Online (Sandbox Code Playgroud)

我还做了以下操作(绕过实际聊天并直接在频道中发布消息):

GET https://api.telegram.org/botXXXXXXTOKENXXXXXXX/sendMessage?chat_id=@TestChannel&text=coucou
Run Code Online (Sandbox Code Playgroud)

这给了我以下答案:

{
  "ok": false,
  "error_code": 403,
  "description": "Forbidden: bot is not a member of the supergroup chat"
}
Run Code Online (Sandbox Code Playgroud)

一个简单的问题,由于机器人也用于广播消息,我缺少其设置的哪一部分?

telegram telegram-bot

7
推荐指数
1
解决办法
1万
查看次数

System.Text.Json.JsonSerializer 不会序列化派生类的属性

我无法让 System.Text.Json.JsonSerializer 序列化派生类的属性。Newtonsoft 完成这项工作没有任何问题。

namespace TestJson
{
    class Program
    {
        static void Main(string[] args)
        {
            var myClass = new NewClass2
            {
                Value1 = "qsd",
                ShouldBeSerialized = "why am I not serialized?"
            };

            // as expected, getting {"ShouldBeSerialized":"why am not serialized?","Value1":"qsd"}
            var textJsonSerializedFromTop = System.Text.Json.JsonSerializer.Serialize<NewClass2>(myClass);

            // expecting {"ShouldBeSerialized":"why am not serialized?","Value1":"qsd"}
            // but getting {"Value1":"qsd"}
            var textJsonSerializedFromBase = System.Text.Json.JsonSerializer.Serialize<ClassBase>(myClass);

            // as expected, getting {"ShouldBeSerialized":"why am not serialized?","Value1":"qsd"}
            var newtonSoftSerializedFromBase = Newtonsoft.Json.JsonConvert.SerializeObject(myClass);
        }
    }
    public class ClassBase
    {
        public string Value1 { …
Run Code Online (Sandbox Code Playgroud)

.net-core

5
推荐指数
0
解决办法
1510
查看次数

标签 统计

.net-core ×1

telegram ×1

telegram-bot ×1