Telethon API - 为什么我的 api_id 和 api_hash 不刷新?

问题描述

我有一个 python 项目,它使用 Telethon 库连接到 Telegram。

我用我的个人手机对其进行了一些测试,在 https://my.telegram.org/auth注册并获得了我的 api_hashapi_id

既然测试成功了,我想使用不同的手机来让它工作,所以我再次进入同一页面获取新的 api_idapi_hash 并且只更改了线路在代码中:

api_id = 0000000
api_hash = 'hashhashblabla'

然而,当再次运行代码时,我看到程序仍然读取我的个人手机接收的消息,而不是新手机,尽管已经更改为新的 api_idapi_hash 值。

您知道发生这种情况的原因吗?

解决方法

API ID 和哈希是永久性的。它们不会重置或刷新。它们附加到开发者帐户。据我所知,你不能改变它们。

开发者的 API ID 和哈希值可供其他用户使用。这些用户可能就是你。当您登录时,Telethon 会在 List<Entry> entries = new ArrayList<>(); for (String one : inp) { entries.add(Entry.fromLine(one)); } Map<String,Integer> res2 = entries.stream() .collect(Collectors.groupingBy(x->x.getTs(),Collectors.summingInt(x -> 1))); System.out.println(res2); 文件中存储一个“登录会话”。它使用它再次连接到授权帐户,而无需每次登录。

您可以根据需要使用开发者的 API ID 和哈希(甚至您自己的帐户)登录任意数量的不同帐户(电话号码,甚至是使用机器人令牌的机器人帐户)。

API ID 和哈希与使用它们登录的用户完全分开。