gpt4 book ai didi

ruby-on-rails - OmniAuth + 拉取推文、FB Places 等

转载 作者:行者123 更新时间:2023-12-04 13:03:50 24 4
gpt4 key购买 nike

我正在使用 OmniAuth + Devise 来允许用户使用 Facebook/Twitter/Gowalla/etc 附加到普通用户帐户进行注册。现在,当用户使用其中任何一个或他们的帐户登录时,他们的所有社交网络都附加在身份验证表中。

我需要能够从这些提供商中的任何一个中提取内容,例如他们的推文或他们的 Facebook Places 检查等。我知道我需要使用不同的 gem、插件,无论做什么,但获取我需要的配置使用这些 gem (并提出请求)让我感到困惑。

我需要能够访问 omniauth.rb 中的提供者配置项,所以我有 API key 和 secret key 等,然后我需要能够从 oAuth 内容中获取 token 以发出请求。

其他 gem 如 https://github.com/jrallison/authlogic_oauth似乎存储 oauth_token、oauth_secret 和 oauth_token,但 OmniAuth 没有。

正如您可能会说我对 Ruby、Rails 和 oAuth 非常陌生,所以结果证明这是一个非常具有挑战性的应用程序。非常需要帮助。

最佳答案

排序!

http://railscasts.com/episodes/236-omniauth-part-2 中描述的身份验证表中添加了 token 和 secret 但更改了 authentication.build 行以采用另外两个参数:

authentications.build(
:provider => omniauth['provider'],
:uid => omniauth['uid'],
:token => omniauth['credentials']['token'],
:secret => omniauth['credentials']['secret']
)

然后使用来自 http://dev.twitter.com/pages/oauth_single_token#ruby 的代码示例
class CronController < ApplicationController

def recent_tweets
# Exchange your oauth_token and oauth_token_secret for an AccessToken instance.

def prepare_access_token(oauth_token, oauth_token_secret)
consumer = OAuth::Consumer.new("APIKey", "APISecret"
{ :site => "http://api.twitter.com"
})
# now create the access token object from passed values
token_hash = { :oauth_token => oauth_token,
:oauth_token_secret => oauth_token_secret
}
access_token = OAuth::AccessToken.from_hash(consumer, token_hash )
return access_token
end

auth = current_user.authentications.find(:first, :conditions => { :provider => 'twitter' })

# Exchange our oauth_token and oauth_token secret for the AccessToken instance.
access_token = prepare_access_token(auth['token'], auth['secret'])

# use the access token as an agent to get the home timeline
response = access_token.request(:get, "http://api.twitter.com/1/statuses/home_timeline.json")

render :json => response.body
end
end

通过从 current_user.authentications 中提取内容(我找到了第一个,因为他们应该只有一个),我可以获取 token 和安全性,并且一切都很好。

现在我可以调整它,保存东西,使用 JSON 并获取我需要的东西。我相信 Facebook 会非常相似。

关于ruby-on-rails - OmniAuth + 拉取推文、FB Places 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4187178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com