我正在写一个自动制作Facebook的简单程序 帖子。据我所知,我需要一个“用户访问令牌” 做这个。我正在使用考拉(但其他人的理念相似) 库)。无论如何,我创建了一个新的OAuth帐户:
@oauth = Koala::Facebook::OAuth.new(app_id, app_secret, callback_url)
然后考拉指示变得有些不清楚。接下来的两行是:
@oauth.url_for_oauth_code # generate authenticating URL
@oauth.get_access_token(code) # fetch the access token once you have the code
“code”变量来自哪里?它没有说 文档。此外,“get_access_token”方法是否获得“应用程序” 访问令牌“或”user_access_token“?方法名称不清楚。 我试着去找[url_for_oauth_code]方法给我的网址, 但它没有给我代码! “代码”变量来自哪里?
答案 0 :(得分:4)
在Koala的首页上,它指出您需要完成http://developers.facebook.com/docs/authentication/中描述的OAuth流程(这是一个旧链接,但其中的内容有效)
具体地
@oauth.url_for_oauth_code
https://github.com/arsduo/koala/blob/master/lib/koala/oauth.rb#L85 生成一个URL,您需要将用户定向到基于回购的URL
https://www.facebook.com/dialog/oauth?
client_id={app-id}&
redirect_uri={redirect-uri}&
scope=email
根据文档https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.2#login,省略response_type
时,默认响应类型为code
。所以上面等同于
https://www.facebook.com/dialog/oauth?
client_id={app-id}&
response_type=code&
redirect_uri={redirect-uri}&
scope=email
因此,在重定向到redirect-uri
时,此网址将附加您必须处理然后提供给
@oauth.get_access_token(code)
访问令牌是用户访问令牌。