与twitter api交互所需的密钥在哪里?

时间:2014-03-28 00:22:44

标签: ruby-on-rails twitter

我想要做的就是在我的网络应用程序的页脚中显示推文,但是我希望将来可以将twitter与我的应用程序集成更多,所以我不想诉诸于使用他们在页面顶部的小jquery片段。但是,我在查询所需的密钥时遇到了很大的困难,说实话,我非常感谢一些行话的帮助。你必须创建一个Twitter应用程序才能收到来自api的推文对我来说完全陌生,我希望有人澄清下面我需要做的事情。

这里列出了我认为应该如何做的事情,但请更新此列表,因为它似乎并不适合我。想象一下我是什么时候尝试为属于该帐户awesome_kittens的推文创建Twitter Feed。

  1. 访问https://dev.twitter.com/并以awesome_kittens
  2. 的身份登录
  3. 点击my_applications下拉列表
  4. 点击create new app按钮
  5. 找到该应用的consumer_key
  6. 找到该应用的consumer_secret
  7. 找到该应用的oauth_token
  8. 找到该应用的oauth_secret
  9. 使用此信息连接到api
  10. 我使用Ruby on Rails,所以在我的情况下第8步我要创建一个启动器并执行以下操作:

    Twitter.configure do |config|
      config.consumer_key = 'consumer_key'
      config.consumer_secret = 'consumer_secret'
      config.oauth_token = 'your_oauth_token_here'
      config.oauth_token_secret = 'your_oauth_token_secret_here'
    end
    

    第3步困惑。我创建的应用程序是否与我的awesome_kittens帐户神奇地相关联?当我只需要awesome_kittens时,为什么我可以在awesome_kittens登录时创建无数个不同的应用程序?如何将应用程序链接到awesome_kittens

    完全被步骤4,5,6和7 困扰。我看起来高低不能在任何地方找不到这些信息。没有。我能找到的唯一密钥是API keyAPI secret。没有提示oauth

    我正在使用Twitter Gem。这是这份工作中最好的宝石吗?也许我希望我的rails应用能够在awesome_kittens帐户上发推文?什么是最好的工作?

2 个答案:

答案 0 :(得分:0)

以下是我对它的理解 - 你的应用程序需要有一组键与twitter交互。

消费者密钥

使用twitter创建应用程序时会设置这些键。这些是消费者密钥。

这些密钥将用于您的应用程序与Twitter的API交互。您的所有请求都将使用您的公钥和私钥进行签名。您永远不会暴露您的私钥 - 但您的公钥可能会暴露。您可能不必担心细节,因为您使用的任何宝石都会处理细节。 (在内部有一个握手过程,如果它们是真正的握手会让你手腕骨折)

OAuth键

那么oauth令牌怎么样? oauth令牌密钥集使您的应用程序能够为Twitter帐户执行操作。它可能是您用于设置使用者密钥的帐户。但它可能很容易成为另一个帐户。

将消费者密钥视为密钥,使您的应用程序能够与twitter API进行交互,并将oauth密钥视为使您的应用程序与您的Twitter帐户交互的密钥。

多个OAuth密钥集

我知道这可能有点令人困惑 - 当你让你的应用程序的用户允许你的应用程序通过你的应用程序与twitter交互时,它可能更有意义。在这种情况下,会有一些Oauth密钥集 - 每个密钥集对应一个不同的Twitter帐户。

那有道理吗?

答案 1 :(得分:0)

应用可以通过两种方式对Twitter进行身份验证(使用oauth):

  • 纯粹仅应用程序身份验证。您只需要应用程序凭据,即上面的“consumer_key”和“consumer_secret”
  • 应用程序内容中的最终用户身份验证。为此,您需要上面的应用程序凭据以及应用程序内容中的用户凭据,上面是oauth_token和oauth_token_secret

如果您只想调用应用程序上下文,那么使用者密钥就足够了。您的每个应用程序的费率受限,并且无法访问非公开的用户数据。

使用用户令牌上下文,您将对每个用户令牌进行速率限制,如果您有多个用户并且需要拨打比应用程序上下文速率限制允许的更多呼叫,则这是可取的。这样您就可以访问私人用户数据。这将要求您构建工作流以在应用程序的上下文中获取用户令牌。

在您的情况下,似乎使用consumer_key和consumer_secret的仅应用程序身份验证现在已足够。