botframework - 在 Bot Framework 中接收来自 Skype 的传入消息时,除了消息文本之外没有 ChannelData
问题描述
当我收到来自 Telegram 的消息时,我会在 Activity.ChannelData 字段中获得有关帐户的详细信息(例如用户名、conversation_id 等)。
{
"update_id": ,
"callback_query": {
"id": "",
"from": {
"id": ,
"is_bot": false,
"first_name": "",
"last_name": "",
"username": "",
"language_code": ""
},
"message": {
"message_id": ,
"from": {
"id": ,
"is_bot": true,
"first_name": "",
"username": ""
},
"chat": {
"id": ,
"first_name": "",
"last_name": "",
"username": "",
"type": "private"
},
"date": ,
"text": "Example text"
},
"chat_instance": "",
"data": ""
}
}
但是当谈到 Skype 时,我看到的只是消息文本,没有别的。
{ "text": "Example text"}
怎么知道,是谁给我发的信息?
Upd:这不应该是用户名,任何其他数据,如用户唯一 ID 都适合。
解决方案
不幸的是,返回的内容是特定于频道的,由频道开发人员确定。决定这一点的不是 Azure 机器人服务或机器人框架的函数。
至于知道是谁发来的消息,这是不可能的。Skype 仅返回每个用户的唯一 ID,以便在隐私问题方面提供一层保密性。
推荐阅读
- go - 我有一张用户表。我想编写一个使用 id 抓取数据的 API。我不断收到以下错误。请注意,数据库已经满了
- ios - 添加 SKAudioNode 时应用程序在模拟器中崩溃?
- android - Android BLE 广告 UUID 长度在不同的 SDK 级别上有所不同?
- holoviews - hvplot 热图排序轴
- sql - 如何使用 PL/SQL 中的过程在表中搜索记录?
- c++ - 如何将静音音频数据写入音频流?
- javascript - React-Native 中更快的数组循环
- go - 如何在 Go 中创建多级错误子类型
- javascript - 在 Hexo 中实施分类法(分组类别)的正确方法是什么?
- powershell - 范围标头必须使用适当的属性或方法