/user

<userid> | reply_to

获取指定或回复的用户相关信息

/user 命令可以让你获取到一个用户的相关资料,包括用户设定的姓名,id,用户所处的 telegram dc,用户语言可能有等等。

使用

/user 命令可以接受以下的调用参数

如果 Morny 成功找到了用户,则将会回复给你一个消息,包含了 Morny 获取到的这个用户的部分信息。

userid :
- 793274677
username :
- Eyre_S
datacenter : cdn5
display name :
- さつき
- アンニエ
language-code :
- zh-hant

特别的注意事项

username

不是所有用户都有 username。没有的话,这一部分将会不出现在回复当中。

display name

分为姓氏last name名字first name两个单独的字段。

Telegram 使用的是 名 - 姓 的排列方式而且并不给用户设定自己的姓名如何排列的,因此,Morny 的返回当中,两行的排列也是第一行,第二行

姓氏last name 是有可能为的。这时,Morny 返回中的第二行也将会不存在

关于 telegram dc 的获取

Morny 实现中,目前根据用户的 web 用户页面中用户上传的头像图片所在 cdn 来判断用户所处 dc

也就是说,Morny /user 想要得到用户dc 需要用户同时满足以下的需求

而同时,出于 API 限制,获取到的 telegram dc 并不一定准确还是能保证绝大部分可能99%的准确性的。具体可以参考别的 dalao 发送的文章《Telegram DC 之都市传说》这篇文章就懒了不赘述这些技术问题了。

language-code

Telegram Bot API 确实会返回一个 language-code 字段。虽然 Morny 开发者也其实并不知道这个字段是怎么得到的。

目前的猜测是,Telegram 服务器将会根据用户的客户端使用/使用过的语言包当中所设置的基础语言来作为用户使用的语言记录下来,并返回给 bot,提供 bot 可以自适应用户语言提供服务的支持。

这个字段有时候也会缺失。


你知道吗