You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Twitter API返回「需更高访问权限」错误?已购Basic计划仍报错

问题解决:Twitter Basic计划下用V2 API发布带图片的推文线程

问题原因

Twitter Basic订阅的Elevated Access权限不包含V1.1的statuses/update端点(即你调用的client_v1.update_status),错误码453的提示已明确这点,必须改用Twitter API V2完成媒体上传和推文发布。

解决方案

使用V2 API的媒体上传接口替代V1.1,V2支持直接上传媒体并关联到推文,无需依赖受限的V1.1端点。

修改后的代码

def create_thread(message_text, media_paths=None):
    # 拆分文案为单条280字符的推文
    tweets = [message_text[i:i + 280] for i in range(0, len(message_text), 280)]
    
    # 处理媒体上传(如果有)
    media_keys = None
    if media_paths:
        media_keys = []
        for path in media_paths:
            # 用V2 API上传媒体,获取media_key
            media_response = client_v2.upload_media(filename=path)
            media_keys.append(media_response.media_key)
    
    # 发布第一条推文(带媒体或纯文本)
    if media_keys:
        response = client_v2.create_tweet(text=tweets[0], media_keys=media_keys)
    else:
        response = client_v2.create_tweet(text=tweets[0])
    
    # 发布后续线程推文(回复前一条)
    for tweet in tweets[1:]:
        response = client_v2.create_tweet(text=tweet, in_reply_to_tweet_id=response.id)
    
    return response

关键修改点

  • 替换V1.1的update_status为V2的create_tweet,用media_keys参数关联上传的媒体
  • 用V2的upload_media接口上传图片,获取media_key(V2不再使用V1的media_id)
  • 回复线程时,V2的正确参数是in_reply_to_tweet_id,修正原代码中错误的reply_settings格式

注意事项

  • 确保client_v2已正确配置Basic计划的API密钥和访问令牌
  • 上传媒体支持JPG、PNG、GIF等格式,单文件大小需符合Twitter V2 API限制

内容的提问来源于stack exchange,提问作者Leonardo Alonso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 09:44:57