如何添加来自两个不同 Telegram 服务器的联系人?
How to add contact from two different Telegram servers?
将来自伊朗等国家/地区的联系人添加到来自加拿大的电报帐户,导致错误提示:
Unfortunately -name- has not joined telegram yet. But you can send
them an invitation.
我认为这是因为来自两个不同服务器的两个不同帐户没有很好地同步。
有时伊朗账户可以添加加拿大账户,然后加拿大人也可以添加伊朗人,即使伊朗人从联系人中删除了加拿大人。或者,如果第三方共享他们的联系人或将消息从一个人转发给另一个人,他们可以互相添加。我认为这些迹象表明电报服务器没有很好地同步。
因为我正在使用 TLsharp 来实现这一点,所以我可以添加两个电报帐户,一个扮演第三人称角色,并将伊朗联系人分享给加拿大人,然后他可以保存该联系人。
我的分步计划是:
- 我有一个伊朗 Telegram 帐户和一个加拿大帐户。
- 伊朗客户打开我的网站。
- she/he 填写电报 phone 号码字段并提交。
- 我们将开始使用加拿大帐户在电报中发送消息。
- 尝试通过加拿大帐户添加联系人。
- 如果失败,尝试用伊朗账号添加联系人。否则,我们完成了!
- 将联系人分享到加拿大帐户。
- 通过加拿大帐户添加联系人。
我的问题是:
- 如何在我的代码中拥有多个电报帐户,因为会话文件名始终是 "session.dat"
- 如何在 TLSharp 中分享联系人
我无法转发消息,因为还没有任何消息。我们应该开始发消息了。
我也试过通过伊朗账户检索UserId
和AccessHash
,并通过这种方法通过加拿大账户使用:
await client.SendMessageAsync(new TLInputPeerUser() { UserId = xxx, AccessHash= yyyy}, "Hello");
但它有 PEER_ID_INVALID
错误。 (这不是真的,我只是从电报中获取 UserId
!)
联系人数量有问题!
Telegram 只支持大约 1000 个联系人(我发现它是实验性的,没有任何官方来源可以证明这一点),当你想添加更多联系人时它会显示错误。
尝试删除一些联系人并将计数减少到 900,允许我添加新联系人。因此,问题不在于电报服务器,而在于联系人数量限制。也许他们有这样一行代码:
Contact[] contacts = new Contact[1000]; //LOL
另外两个问题:
- how to have multiple telegram accounts in my code, because session
file name is always "session.dat"
TLSharp.Core.TelegramClient clientAlt = new TLSharp.Core.TelegramClient(api_id, api_hash, sessionUserId: "sessionAlt");
TLSharp 没有任何好的文档,但通过使用 sessionUserId
作为可选参数解决了这个问题。
- how to share contact in 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);
将来自伊朗等国家/地区的联系人添加到来自加拿大的电报帐户,导致错误提示:
Unfortunately -name- has not joined telegram yet. But you can send them an invitation.
我认为这是因为来自两个不同服务器的两个不同帐户没有很好地同步。
有时伊朗账户可以添加加拿大账户,然后加拿大人也可以添加伊朗人,即使伊朗人从联系人中删除了加拿大人。或者,如果第三方共享他们的联系人或将消息从一个人转发给另一个人,他们可以互相添加。我认为这些迹象表明电报服务器没有很好地同步。
因为我正在使用 TLsharp 来实现这一点,所以我可以添加两个电报帐户,一个扮演第三人称角色,并将伊朗联系人分享给加拿大人,然后他可以保存该联系人。 我的分步计划是:
- 我有一个伊朗 Telegram 帐户和一个加拿大帐户。
- 伊朗客户打开我的网站。
- she/he 填写电报 phone 号码字段并提交。
- 我们将开始使用加拿大帐户在电报中发送消息。
- 尝试通过加拿大帐户添加联系人。
- 如果失败,尝试用伊朗账号添加联系人。否则,我们完成了!
- 将联系人分享到加拿大帐户。
- 通过加拿大帐户添加联系人。
我的问题是:
- 如何在我的代码中拥有多个电报帐户,因为会话文件名始终是 "session.dat"
- 如何在 TLSharp 中分享联系人
我无法转发消息,因为还没有任何消息。我们应该开始发消息了。
我也试过通过伊朗账户检索UserId
和AccessHash
,并通过这种方法通过加拿大账户使用:
await client.SendMessageAsync(new TLInputPeerUser() { UserId = xxx, AccessHash= yyyy}, "Hello");
但它有 PEER_ID_INVALID
错误。 (这不是真的,我只是从电报中获取 UserId
!)
联系人数量有问题! Telegram 只支持大约 1000 个联系人(我发现它是实验性的,没有任何官方来源可以证明这一点),当你想添加更多联系人时它会显示错误。 尝试删除一些联系人并将计数减少到 900,允许我添加新联系人。因此,问题不在于电报服务器,而在于联系人数量限制。也许他们有这样一行代码:
Contact[] contacts = new Contact[1000]; //LOL
另外两个问题:
- how to have multiple telegram accounts in my code, because session file name is always "session.dat"
TLSharp.Core.TelegramClient clientAlt = new TLSharp.Core.TelegramClient(api_id, api_hash, sessionUserId: "sessionAlt");
TLSharp 没有任何好的文档,但通过使用 sessionUserId
作为可选参数解决了这个问题。
- how to share contact in 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);