我在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
答案 0 :(得分:1)
由于您必须在用户未登录时同步/更新信息,因此您必须使用服务器端交互。 您可以使用已保存的Extended Access Token并使用Facebook PHP SDK方法将其设置为setAccessToken()。
$facebook->setAccessToken($extended_access_token);
在此之后,您可以调用 $ facebook-> api(...)方法来执行您打算执行的任务。