【发布时间】:2017-11-17 07:21:58
【问题描述】:
如果消息是由没有用户名和全名的用户发送的,则从 Bot Framework 传递的消息在 from 对象中没有 name 属性。例如,如果您像这样从个人资料中删除名字或姓氏
这是我从只有名字的用户发送的消息中获得的 json 示例(查看 from 对象):
{
"channelData": {
"message": {
"chat": {
"all_members_are_administrators": true,
"id": -219911672,
"title": "jlarky-dev",
"type": "group"
},
"date": 1493246056,
"from": {
"first_name": "Test",
"id": 107390199
},
"message_id": 100,
"text": "test"
},
"update_id": 66470785
},
"channelId": "telegram",
"conversation": {
"id": "-219911672",
"isGroup": true,
"name": "jlarky-dev"
},
"entities": [
{
"mentioned": {
"id": "JLarkyTestBot",
"name": "jlarky_test"
},
"text": "JLarkyTestBot",
"type": "mention"
}
],
"from": {
"id": "107390199"
},
"id": "KxBlE8JsLfg",
"recipient": {
"id": "JLarkyTestBot",
"name": "jlarky_test"
},
"serviceUrl": "https://telegram.botframework.com",
"text": "test",
"timestamp": "2017-04-26T22:34:17.4109674Z",
"type": "message"
}
【问题讨论】:
-
我无法回答这个问题。总之,name 属性来自
ChannelData而不是from对象。 -
@OmG
from对象总是有id和name除非出现像这样的一些错误,channelData是机器人框架发送给你的通道(第三方服务)特定数据. -
因此,您可以从
ChannelData获取name,正如您在结果中看到的那样。 -
使用
channelData.from.first_name -
@NilsW 是的,我认为这可能是最好的方式,看到这个错误修复仍然很酷。