Tweepy v4.1.0调用API.me()报错'API' object has no attribute 'me'求助
报错原因
Tweepy从4.0版本开始对原有接口做了不兼容更新,v3版本中用于获取当前认证用户信息的API.me()方法被正式移除,你当前使用的4.1.0属于v4版本范畴,调用已删除的方法自然会触发AttributeError: 'API' object has no attribute 'me'报错。
解决方案
方案1:直接替换方法(仅适配v4版本)
将原代码中的bot_id = int(api.me().id_str)替换为如下代码即可:
bot_id = int(api.verify_credentials().id_str)
API.verify_credentials()是官方指定的API.me()替代方法,返回的用户对象结构和原有方法完全一致,除方法名之外的其他用户属性调用逻辑无需修改。
方案2:兼容多版本写法
如果需要代码同时适配Tweepy v3和v4版本,可以增加版本判断逻辑:
import tweepy from packaging import version import os # 前面的认证初始化逻辑保持不变 auth = tweepy.OAuthHandler(os.getenv("key2"),os.getenv("skey2")) auth.set_access_token(os.getenv("token2"),os.getenv("stoken2")) api = tweepy.API(auth) # 兼容不同版本获取当前用户 if version.parse(tweepy.__version__) >= version.parse("4.0.0"): current_user = api.verify_credentials() else: current_user = api.me() bot_id = int(current_user.id_str)
内容的提问来源于stack exchange,提问作者Larwive
相关产品推荐
相关产品推荐

