c# - BotFramework 调用 Telegram 方法(getChatAdministrators)
问题描述
我如何从 BotFramework 调用 Telegram 方法(getChatAdministrators)
我试过这段代码,但响应是空的
turnContext.Activity.ChannelData = JsonConvert.SerializeObject(new
{
method = "getChatAdministrators",
parameters = new
{
chat_id = chat.Id,
}
});
var response = await turnContext.SendActivityAsync(turnContext.Activity);
解决方案
的Activity
属性ITurnContext
表示当前回合的传入活动,因此如果您尝试发送新活动,您不想使用/改变该实例,您想创建一个新活动。
我个人并没有完全按照您对 Telegram 的要求完成,但这是您应该使用的一般方法:
var response = await turnContext.SendActivityAsync(new Activity
{
ChannelData = new
{
method = "getChatAdministrators",
parameters = new
{
chat_id = chat.Id,
},
},
});
注意:也没有理由手动 JSON 序列化任何东西,如果你愿意,只需使用匿名类型(你也可以创建自己的带有 JSON.NET 序列化属性标记的强类型类),它们会很好地序列化。恕我直言,一个好的通道集成应该提供一个 NuGet 包,其中包含通道特定的类型/扩展,但由于 V4 现在相对较新,还没有那么多扩展。
推荐阅读
- swift - .isPlaying 与 SwiftUI 中的暂停/播放按钮有关的错误
- google-analytics - 创建 bigquery 集群表的备份
- php - PHP Imagick 分段错误
- java - 通过邮递员发布到现有对象
- javascript - 使用 react 应用获取 css 类属性。需要 JQuery 吗?
- pip - `ansible --version` 命令抛出错误
- c# - 使用 Azure SignalR 时,无法加载 Microsoft.Extensions.Logging.Abstractions
- javascript - 如何避免在洪水填充算法期间超过最大调用堆栈大小?
- css - 按字符类更改 CSS 中的样式
- mysql - 选择具有总和的mysql数据