如何使用引荐链接加入电报聊天机器人?

时间:2020-10-05 20:32:50

标签: python telegram telegram-bot telethon

这是我的程序代码:

chn = 'https://t.me/Crypto_Claimer_Bot?start=1003997020'

channel_entity = client.get_entity(chn)

print('LOGIN DENGAN @'+myself.username+'\n')

client.send_message(entity=channel_entity, message='/start')

运行程序时,会出现如下错误:

Traceback (most recent call last):
  File "ulang.py", line 55, in <module>
    channel_entity = client.get_entity(chn)
  File "/data/data/com.termux/files/usr/lib/python3.8/site-packages/telethon/sync.py", line 39, in syncified
    return loop.run_until_complete(coro)
  File "/data/data/com.termux/files/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "/data/data/com.termux/files/usr/lib/python3.8/site-packages/telethon/client/users.py", line 311, in get_entity
    result.append(await self._get_entity_from_string(x))
  File "/data/data/com.termux/files/usr/lib/python3.8/site-packages/telethon/client/users.py", line 546, in _get_entity_from_string
    raise ValueError(
ValueError: Cannot find any entity corresponding to "https://t.me/Crypto_Claimer_Bot?start=1003997020"

从此错误中,我应该在程序代码中进行哪些更改?

1 个答案:

答案 0 :(得分:1)

首先,您拥有的链接不是entity。您应该可以将?之前的链接部分用作实体。因此,最好将链接分为两部分。

link = 'https://t.me/Crypto_Claimer_Bot?start=1003997020'
bot_link , refereal = link.split('?')
message = f'/start {refereal.split('=')[1]}'
await client.send_message(bot_link, message)