目前我正在使用桌面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活动)
答案 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}