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

如何通过VBA获取公开Twitter推文的ResponseText?

用VBA获取公开Twitter推文JSON的解决方案(重点解决Bearer Token问题)

嘿,作为同样玩Excel和VBA的同行,我太懂你遇到的这个头疼问题了!你之前碰到的Forbidden和Rate limit exceeded错误,核心问题出在那个公开的Bearer Token上——那玩意儿是网页端临时用的,早就被Twitter限制得死死的,根本没法用来做稳定的API调用。咱们一步步来解决:

一、先搞懂为什么之前的Token不行

你用的那个公开Bearer Token是Twitter网页端给未登录用户临时分配的,它的权限极低、限流极严,而且随时可能失效。要正常调用Twitter API,必须用你自己的、通过开发者平台生成的App-only认证Bearer Token。

二、获取有效Bearer Token的正确步骤

这一步其实没你想象的复杂,免费就能搞定:

  • 先去Twitter Developer Platform注册一个开发者账号(用普通Twitter账号就能注册,免费版完全够咱们测试获取公开推文的需求)
  • 注册后创建一个新项目,然后在项目的「Keys and Tokens」页面里,找到「Bearer Token」选项,点击生成属于你自己的Token(这个Token是绑定你的项目的,权限和限流规则都是明明白白的)
  • 记住:免费版的API有速率限制,比如每15分钟最多能调用15次,但用来测试完全足够了。

三、修改后的可用VBA代码

我给你调整了代码,适配现在的Twitter API v2规范,替换掉旧的端点和参数,关键是要把YOUR_OWN_BEARER_TOKEN_HERE换成你自己生成的Token:

Sub GetTwitterConversation()
    Dim MiHttp As Object
    Dim MiUrl As String
    Dim bearerToken As String
    
    ' 替换成你从Twitter Developer平台获取的专属Bearer Token
    bearerToken = "YOUR_OWN_BEARER_TOKEN_HERE"
    
    ' 推荐使用MSXML2.XMLHTTP.6.0版本,兼容性和稳定性更好
    Set MiHttp = CreateObject("MSXML2.XMLHTTP.6.0")
    
    ' 现在Twitter API v2的对话获取端点,参数可以根据需求调整
    MiUrl = "https://api.twitter.com/2/tweets/1273391252357201922/conversation?max_results=20&tweet.fields=author_id,created_at,public_metrics,full_text&expansions=author_id&user.fields=username,name"
    
    With MiHttp
        ' 同步调用,避免DoEvents带来的异步问题
        .Open "GET", MiUrl, False
        ' 设置Authorization请求头,注意Bearer后面要有空格
        .setRequestHeader "Authorization", "Bearer " & bearerToken
        .Send
        
        ' 先检查响应状态码,方便排查问题
        If .Status = 200 Then
            Debug.Print "获取成功:" & vbCrLf & .responseText
        Else
            Debug.Print "请求失败,状态码:" & .Status & " - " & .StatusText
            Debug.Print "错误详情:" & .responseText
        End If
    End With
    
    MiHttp.abort
    Set MiHttp = Nothing
End Sub

四、几个关键注意事项

  • 绝对不要用网上随便搜的公开Bearer Token,要么失效要么直接触发限流,只有自己生成的才靠谱
  • Twitter API v2的参数和旧版本不一样,比如用max_results代替原来的count,用tweet.fields来指定要返回的字段(比如full_text能拿到完整推文内容),你可以根据自己的需求调整这些参数
  • 如果还是遇到错误,去Twitter Developer后台的「API Analytics」里看调用日志,里面会有详细的错误原因,比返回的错误代码更直观

内容的提问来源于stack exchange,提问作者Foxfire And Burns And Burns

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 08:47:53