在我的 Rails 控制器中,我有一个名为“usernames”的数组,它只有 10 个没有“@”符号的 twitter 句柄。我将这些用户的最新推文存储在一个名为“tweets”的数组中,分配如下:
tweets = usernames.map{|username| $client_local.user_timeline(username,count: 1)[0].text}
其中 $client_local 是:
$client_local = Twitter::REST::Client.new do |config|
config.consumer_key = 'xxxx'
config.consumer_secret = 'xxxx'
config.access_token = 'xxxx'
config.access_token_secret = 'xxxx'
end
我使用了 ruby 基准测试模块,发现“tweets”任务需要 2.5 秒才能运行。我猜这需要很长时间,因为 user_timeline 函数被调用了 10 次,因此建立了 10 个单独的连接。
寻找解决方案,我去了sferik的github for configuration options,根据页面上的这个解释,我需要的是“bearer tokan”:
client.user("sferik")
注意:第一次调用此方法时,会发出两次 API 请求。首先,它将获取访问令牌以执行请求。然后,它将获取请求的用户。访问令牌将被缓存以用于使用同一客户端发出的后续请求,但您可能希望手动获取访问令牌一次并在初始化客户端时使用它以避免每次发出两个请求。
client.bearer_token
此令牌永不过期,除非失效,否则不会更改。获得不记名令牌后,您可以使用它来初始化客户端以避免发出额外的请求。
- 我无法找到我的应用程序的不记名令牌或弄清楚如何获得一个
- 如果这是我的问题的解决方案,或者我应该寻找其他东西,我不是 100%。
想法?
在网上搜索时,我看到有人建议在我的 Twitter 帐户上列出这些用户,然后请求“列表/状态”。这不是一个选项,因为每次设置数组时,“用户名”数组中的 10 个用户名都是不同的。