如何添加来自两个不同电报服务器的联系人



将伊朗这样的国家的联系人添加到加拿大的电报帐户中,导致错误说:

不幸的是-Name-尚未加入电报。但是你可以发送 他们的邀请。

我认为那是因为两个不同的服务器有两个不同的帐户,这些帐户不是很好。

有时伊朗帐户可以添加加拿大帐户,然后加拿大人也可以添加伊朗人,即使伊朗从联系中删除了加拿大人。或者,如果第三人共享联系人或将消息转发到另一个信息,则可以互相添加。我认为这些迹象表明电报服务器的同步不是很好。

当我使用tlsharp来实现这一目标时,我可以添加两个电报帐户,一个扮演第三人称角色,并与加拿大人分享伊朗联系,然后他可以保存该联系人。我的逐步计划是:

  1. 我拥有的是伊朗电报帐户和加拿大的帐户。
  2. 伊朗客户打开我的网站。
  3. 她/他填写电报电话号码字段并提交。
  4. 我们将开始通过加拿大帐户的电报发送消息。
  5. 尝试添加加拿大帐户的联系。
  6. 如果失败,请尝试通过伊朗帐户添加联系。否则,我们完成了!
  7. 与加拿大帐户分享联系。
  8. 加拿大帐户添加联系人。

我的问题是:

  1. 如何在我的代码中拥有多个电报帐户,因为会话文件名称始终为" session.dat"
  2. 如何在tlsharp中共享联系

我无法转发消息,因为还没有任何消息。我们应该开始消息传递。

我还尝试通过伊朗帐户检索UserIdAccessHash,并通过加拿大帐户在此方法中使用:

await client.SendMessageAsync(new TLInputPeerUser() { UserId = xxx, AccessHash= yyyy}, "Hello");

,但它具有PEER_ID_INVALID错误。(这不是真的,我只是从电报中拿走了UserId!(

问题是联系人的数量!电报仅支持约1000个联系人(我发现它是实验性的,没有任何官方来源可以证明这一点(,当您想添加更多联系人时,它会向您显示错误。试图删除一些联系人并将计数减少到900,使我可以添加新的联系人。因此,问题不在电报服务器中,而是触点限制的数量。也许他们有这样的代码线:

Contact[] contacts = new Contact[1000]; //LOL 

以及其他两个问题:

  1. 如何在我的代码中拥有多个电报帐户,因为会话 文件名总是" session.dat"
TLSharp.Core.TelegramClient clientAlt = new TLSharp.Core.TelegramClient(api_id, api_hash, sessionUserId: "sessionAlt");

TLSHARP没有任何好的文档,但是通过使用sessionUserId作为可选参数解决了问题。

  1. 如何在tlsharp中分享联系?
TLInputMediaContact contact = new TLInputMediaContact()
{
    FirstName = FirstName,
    LastName = LastName,
    PhoneNumber = PhoneNumber 
};
TLRequestSendMedia req = new TLRequestSendMedia()
{
    Media = contact,
    Peer = new TLInputPeerUser() { UserId = AnotherTelegramAccountUserID.Id },
    RandomId = UniqueNumber_ToPreventDuplicateMessages,
};
await clientAlt.SendRequestAsync<TLUpdates>(req);

最新更新