我正在尝试在电报聊天中发送消息。我希望电报设置只能通过官方 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)
一个简单的问题,由于机器人也用于广播消息,我缺少其设置的哪一部分?
我无法让 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)