Facebook完全权限AccessToken替代离线访问令牌

时间:2013-03-03 16:08:50

标签: facebook-graph-api access-token facebook-access-token facebook-insights

目前我正在使用桌面Windows服务来下载我的Facebook页面见解/页面喜欢/朋友等图表数据。所以,为此我已经在我的Facebook页面上添加了应用程序并生成了完全权限离线访问令牌。所以,使用我正在从过去一年正确下载我的Facebook页面见解 但是,由于Facebook弃用了离线帐户令牌。 请任何人都可以帮助我如何生成具有完全权限的访问令牌,无需登录即可下载我的页面洞察数据(无任何User / Ui对话框(允许等))。

现在,我正在尝试&通过一些api生成该访问令牌如下: - https://graph.facebook.com/oauth/access_token?client_id=xxxx&client_secret=xxxxx&grant_type=client_credentials

但是,使用上述调用我将获得访问令牌(短长度令牌) - 例如: -

123484913842345|jkioEjsRAhFrNdertg9zuxPiopl

尝试查看图表数据时,使用上述访问令牌获取以下错误: -

{"error": {"message": "Unsupported get request.","type": "GraphMethodException","code": 100  }}

但是,我发现此访问令牌没有完整的权限&生命也很短暂。

当我使用旧的离线访问令牌时,它正在给出正确的响应。 (此标记将在一段时间后关闭)。所以,生成相同类型的Access令牌,大约60天的生命。 请帮帮我。如何生成具有完整110字符长度的完全权限的访问令牌。 此外,我正在使用Windows服务,所以,任何人都可以帮助这个如何在不登录的情况下生成访问令牌(用户/ UI活动)

2 个答案:

答案 0 :(得分:3)

要解决此问题,您需要extend短暂的令牌。

您还可以在没有任何用户交互的情况下debug访问令牌,以查看扩展访问令牌的操作是否有效。

link是关于离线访问过期的一个很好的参考。

使用此URL调试访问令牌时:

https://graph.facebook.com/debug_token?input_token=INPUT_TOKEN&access_token=ACCESS_TOKEN

INPUT_TOKEN 是用户访问令牌

ACCESS_TOKEN 是应用访问令牌,其形式如下:APP_ID | APP_SECRET 要澄清一下,如果我的应用ID为123&应用密码为abc,然后应用访问令牌为123|abc

答案 1 :(得分:0)

简单的解决方案只需使用PHP SDK调用以下函数

$facebook->setExtendedAccessToken();

之后通过

获得扩展访问令牌
$access_token = $facebook->getAccessToken();

OR

GET /oauth/access_token?  
    grant_type=fb_exchange_token&           
    client_id={app-id}&
    client_secret={app-secret}&
    fb_exchange_token={short-lived-token}