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

如何修复R脚本调用Twitter API v2时expansion参数不合法的报错

报错含义

这个报错是参数名拼写错误导致的:Twitter API v2规定扩展字段的参数名为复数形式expansions,你代码里写的单数形式expansion不在接口支持的合法参数列表中,因此请求被判定为非法。

修复步骤

你需要同时修正3处错误:

  • 修正参数拼写:把params列表中的键名expansion改为expansions
  • 统一环境变量名:你前面设置的环境变量是BEARER_TOKEN,后续读取的是TWITTER_BEARER,变量名不匹配会导致无法正常读取鉴权token,两个变量名要保持一致
  • 确认请求URL和参数匹配:如果你要查询指定用户名的用户信息,就用https://api.twitter.com/2/users/by/username/{handle}地址;如果要查询单条推文内容,才用https://api.twitter.com/2/tweets/{推文ID}的地址,不要把用户名直接拼到tweets接口的路径后。

修正后完整代码

library(rjson)
require(httr)
require(jsonlite)
require(dplyr)

# 统一token的环境变量名
Sys.setenv(TWITTER_BEARER="替换成你的实际bearer token")
bearer_token <- Sys.getenv("TWITTER_BEARER")
headers <- c(`Authorization` = sprintf('Bearer %s', bearer_token))

# 修正参数名expansion为expansions
params <- list(`user.fields` = 'description',
               `expansions` = 'pinned_tweet_id')
handle <- "codewryte"
# 用用户查询接口的正确地址
url_handle <- paste0("https://api.twitter.com/2/users/by/username/", handle)

response <- httr::GET(url = url_handle,
                      httr::add_headers(.headers = headers),
                      query = params)
obj <- httr::content(response, as = "text")
x <- fromJSON(obj)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:15:05