我使用TLSharp
为Telegram创建客户端,我想向某些电报用户发送消息。
我可以使用username
和userid
,但我找不到使用username
向他们发送消息的方法(虽然在电报api中你可以这样做但是我无法找到使用TLSharp
)的方法,所以我使用他们的userid
向他们发送带有此代码的消息:
await client.SendMessageAsync(new TLInputPeerUser() { user_id = someOneUserid }, "This is My Message");
此代码可以找到我在联系人列表中有这些代码的人,但与其他人有PEER_ID_INVALID
例外。
有没有办法在发送邮件之前将这些人添加到联系人列表?或者有没有办法只使用他们的username
?
先谢谢。
答案 0 :(得分:2)
我知道该线程不再处于活动状态,但是将来有谁查看此页面:
您需要AccessHash来发送消息:
- (void)logString:(NSString *)format, ...;
- (void)logString:(NSString *)format arguments:(va_list)argList;
如果您不知道访问哈希,只需尝试使用用户名或电话号码解析用户。 (TLUser类)
如果您拥有TLUser对象,则可以使用此对象:
await client.SendMessageAsync( new TLInputPeerUser() { UserId = xxx, AccessHash = yyyyy}, "This is My Message");
最诚挚的问候。
答案 1 :(得分:1)
使用此选项按手机号码导入联系人列表:
contacts.importContacts#da30b32d contacts:Vector<InputContact> replace:Bool = contacts.ImportedContacts;
使用此按用户名解析:
contacts.resolveUsername#f93ccba3 username:string = contacts.ResolvedPeer;