为什么Facebook画布signed_request param没有访问令牌?

时间:2012-01-11 21:39:01

标签: facebook oauth facebook-canvas

我有一个在Facebook的Canvas上下文中加载的Facebook应用程序。如果我直接点击应用程序URL(http://apps.facebook.com/myapp/),Facebook生成的signed_request不包含访问令牌......

如果我从书签中点击了应用网址,则会成功返回access_token。

我不确定在直接点击应用网址并且网址中没有access_token时如何处理这种情况。我对此有何误解?

如果用户已登录facebook,为什么签名请求中没有访问令牌?

1 个答案:

答案 0 :(得分:2)

如果没有access_token,则表示Facebook不认为用户“登录到您的应用”。通常它意味着用户没有登录到Facebook,或者他们没有授权你的应用程序,但它也可能发生在他们只是超时等等。

正确的做法是将用户发送到oauth身份验证页面(对话框或重定向网址),如here所述

然后facebook肯定会使用access_token重定向回你。如果用户登录到Facebook并且之前已经授权您的应用程序,则只需快速重定向而无需他们执行任何操作。