2012-07-03 57 views
0

我只想问一个我在Facebook Graph API面临的问题。 我已经连接到Facebook的成功,观看我要建,它使用存储在我的数据库中的access_token网站时存储的用户ID和用户access_code到我的数据库现在Facebook的状态API

,但不显示我的Facebook状态....因为“会话已过期”...

有无论如何我可以重新生成access_token?

感谢

例子:

$status = 'https://graph.facebook.com/'.$userId.'/statuses?limit='.10.'&access_token='.$app_token; 

回答

1

用户访问令牌仅持续1-2小时。有一种技术可以获得60天的令牌供您使用。这里解释:http://dominicminicoopers.blogspot.com/2012/03/facebook-access-tokens-and-offline.html请记住在短期访问令牌到期之前获取此扩展访问令牌。您必须传入有效的工作用户访问令牌才能传递给它。在服务器端执行此操作,而不是客户端,因为您必须使用应用程序密钥。

https://graph.facebook.com/oauth/access_token?    
    client_id=[APP_ID]& 
    client_secret=[APP_SECRET]& 
    grant_type=fb_exchange_token& 
    fb_exchange_token=[EXISTING_NON-EXPIRED_USER_ACCESS_TOKEN] 

记得在提示用户时要求提供user_status权限。请参阅:http://developers.facebook.com/docs/authentication/permissions/#user_friends_perms

0

你不能再生,但你可以通过让用户完成OAuth过程中再次,它会返回一个新的令牌获得一个新的 - https://developers.facebook.com/docs/authentication/

+0

由于这种情况,这是否意味着每当我的access_token用完时,我都必须再次登录? –

0

你可以尝试获得一个长寿命的标记。即使用户没有进入时,也可以访问该状态。 请参阅here

+0

hhmm ...这将如何工作...因为我已经登录,并且我的访问令牌最终持续2个小时...我应该使用这个:“例外1:桌面应用程序” –