Twitter的消费者密钥和访问令牌有什么区别?

14

我正在跟随railscasts的235-devise-and-omniauth-revised。第一步是设置twitter应用凭据。我发现有

Consumer key/Consumer secret

还有

Access token/Access token secret

我的问题很简单,为什么有两对凭据,正确的场景是什么时候使用它们。

我注意到这里有一个相同的问题,但并没有太多帮助。

好的,据我所知,consumer_key pair用于服务器,而access_key pair用于客户端。请查看下面的评论,如果您有其他理解,请添加您的答案。

2个回答

14

消费者密钥是用于您的应用程序,客户端令牌是用于您的应用程序环境中的最终用户。

如果您只想在应用程序上下文中调用,则消费者密钥就足够了。您将受到每个应用程序的速率限制,并且无法访问非公共的用户数据。

使用用户令牌上下文,您将受到每个令牌/用户的速率限制,如果您有多个用户并且需要进行比应用程序上下文速率限制更多的调用,则这是理想的选择。 您的总调用容量(通常每15分钟)=用户令牌数X每个用户令牌每个API速率限制。 此外,这种方法可以访问私有用户数据。

使用哪种取决于您的场景。


5
我可能有点迟钝,但仍然没有直观的理解。 - Adam Hughes
2
消费者密钥/密钥是特定于应用程序的,而访问令牌/密钥是特定于用户的。我相信(如果我错了,有人可以纠正我),消费者对是嵌入在您的应用程序中的,而访问对是每个用户生成的。例如,如果您在手机上安装了Twitter应用程序,则该应用程序将由应用程序开发人员嵌入消费者对,但是当您在应用程序中登录Twitter时,将生成访问对。学习时有点混淆,因为您是测试代码的唯一用户,但仍必须生成访问对。 - seren
@seren 这个说法有一定道理,但是每个应用程序可以生成一个“静态”访问令牌对。如果有人能够编写一个使用案例,其中应用程序同时利用了“消费者密钥”和单个与应用程序相关的“访问令牌”对,那将非常有帮助。 - Justin Maxwell

2

我不确定但可能是这样:

我使用tweetsharp和.NET,看到在那里使用consumer-pair创建twitterservice以执行某些操作。accessToken-pair用于使用您自己的Twitter帐户签署请求。

Dim service As TwitterService = New TwitterService(obj.consumer_key, obj.consumer_secret)
service.AuthenticateWith(obj.access_token, obj.access_token_secret)

谢谢回答我的问题。我有点理解使用 consumer-pair 创建 Twitter 服务。那么,您所说的 access_token 用于创建客户端? - Race
1
好的,举个例子,你需要为Twitter创建一个应用程序(为你的网站或应用程序本身),以便能够代表该网站创建请求。然后,你可以使用Twitter账户本身的访问令牌来个性化这些请求。 - Yosoyke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接