在Facebook App流程中使用的signed_request中的oauth_token是什么?

时间:2011-04-07 22:40:34

标签: facebook authentication

是否可以使用oauth_token和app_secret以某种方式请求access_token?

(如果没有,地球上的oauth_token是什么?)

或者每当用户(新会话)访问我的页面以获取access_token检索的代码时,是否需要发出誓言请求?

(如果是的话,如何为返回用户提供流畅的用户体验?我不想通过jscript重定向来回发送它们,但同时我想留在FB iframe中)

致以最诚挚的问候,

SD

2 个答案:

答案 0 :(得分:1)

当您的页面加载到FB IFrame中时,Facebook会在POST变量中传递有效的signed_request。如果您的页面作为FB Canvas应用程序加载,通常不需要获取一个。

您不再需要使用OAuth令牌了。你想要使用的是:

1)用户signed_request,传递给FB IFrame 2)应用程序访问令牌,用于提取应用程序洞察或访问请求2.0对象。

以下是处理signed_request(official documentation)的方式:

如果验证无效,您可以将它们发送到此URL,让他们通过Facebook身份验证,然后返回到您的页面:

http://www.facebook.com/dialog/oauth?client_id=<YOUR_APP_ID>&redirect_uri=<URLENCODED_APP_URL>

有关更详细的信息,例如如何为刚刚授权您的应用程序的全新用户获取用户访问令牌以及如何获取应用访问令牌,您可以参考官方文档here

答案 1 :(得分:0)

oauth_token是您的“公钥”,用于制作访问令牌并签署您的请求。您的访问令牌使用signed_request获得的POST变量进行编码。如果您正在使用Facebook PHP SDK,它会自动为您解析(我想其他官方SDK的行为方式相同),如果您需要,可以简单地调用$facebook->getAccessToken()