向用户ID发送消息时的PEER_ID_INVALID

时间:2017-05-02 05:27:09

标签: c# telegram

我使用TLSharp为Telegram创建客户端,我想向某些电报用户发送消息。
我可以使用usernameuserid,但我找不到使用username向他们发送消息的方法(虽然在电报api中你可以这样做但是我无法找到使用TLSharp)的方法,所以我使用他们的userid向他们发送带有此代码的消息:

await client.SendMessageAsync(new TLInputPeerUser() { user_id = someOneUserid }, "This is My Message");  

此代码可以找到我在联系人列表中有这些代码的人,但与其他人有PEER_ID_INVALID例外。

有没有办法在发送邮件之前将这些人添加到联系人列表?或者有没有办法只使用他们的username

先谢谢。

2 个答案:

答案 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;