代码之家  ›  专栏  ›  技术社区  ›  Andrey Epifantsev

Telethon:如何正确获取关于自己的信息?

  •  0
  • Andrey Epifantsev  · 技术社区  · 1 年前

    我想用Python为Telegram信使编写我自己的客户端。我使用 Telethon 图书馆我从他们的主页上取了一个代码示例:

     from telethon import TelegramClient
    
     api_id = my_id
     api_hash = 'my_hash'
    
     client = TelegramClient('Test2Session', api_id, api_hash)
     client.start()
    
     print(client.get_me().stringify())
    

    此代码应该将有关我的信息输出到控制台。当我运行此代码时,我会得到错误:

     AttributeError: 'coroutine' object has no attribute 'stringify'
    

    排队

     print(client.get_me().stringify())
    

    如何修复此错误?如何接收关于自己的信息?

    1 回复  |  直到 1 年前
        1
  •  2
  •   RAJ PATEL    1 年前

    之所以会发生这种情况,是因为 get_me() 是Telethon库中的一个协同程序,您需要等待它才能得到结果。您可以使用 await 关键字异步等待结果。

    试试这个:

    from telethon import TelegramClient
    
    api_id = my_id
    api_hash = 'my_hash'
    
    async def main():
        client = TelegramClient('Test2Session', api_id, api_hash)
        await client.start()
    
        me = await client.get_me()
        print(me.stringify())
    
    if __name__ == '__main__':
        import asyncio
        asyncio.run(main())