如何使用我的长(60day)访问令牌从Facebook获取用户数据(离线)

时间:2013-03-28 13:05:39

标签: javascript facebook-graph-api facebook-javascript-sdk facebook-login

我在facebook dev上找不到任何示例。或者在stackoverflow上,所以我需要发表这篇文章,我认为不得不这样做。

我有一个使用facebook JavaScript SDK登录用户的网站。 当我登录用户时,我使用

FB.login(), scope:{'email, offline_access'}

当登录完成后,我获得了短暂的访问令牌并将其传递给:

https://graph.facebook.com/oauth/access_token?  
    grant_type=fb_exchange_token&           
    client_id=APP_ID&
    client_secret=APP_SECRET&
    fb_exchange_token=SHORT_LIVED_ACCESS_TOKEN 

所以我得到了长寿的60天令牌。这是在服务器端完成的,我将新的持久令牌与facebook id等一起保存在我的数据库中。

现在我的问题。我想在某个时间每天使用访问令牌更新数据库中的用户数据,我已经阅读过该令牌。但是我该怎么做?

我习惯在FB.login()之后这样做,但是现在当用户没有登录时我不知道如何使用我的持久令牌来调用FB.api?

FB.api(/me....)

此致 的Kristoffer

1 个答案:

答案 0 :(得分:1)

由于您必须在用户未登录时同步/更新信息,因此您必须使用服务器端交互。 您可以使用已保存的Extended Access Token并使用Facebook PHP SDK方法将其设置为setAccessToken()

$facebook->setAccessToken($extended_access_token);

在此之后,您可以调用 $ facebook-> api(...)方法来执行您打算执行的任务。