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



目前我正在使用桌面windows服务下载我的Facebook页面见解/页面点赞/好友等图形数据。因此,为此,我在我的facebook页面上添加了应用程序,并生成了完全权限离线访问令牌。所以,使用它,我下载了我的脸书页面正确的见解从去年
但是,由于Facebook反对使用离线访问令牌。请任何人都能帮助我如何在无需登录的情况下(通过任何用户/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  }}

但是,我发现这个访问令牌没有完全权限&寿命也很短。

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

要解决此问题,您需要扩展短期令牌。

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

此链接是关于脱机访问到期的一个很好的参考。

当您使用以下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

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

$facebook->setExtendedAccessToken();

并且在它通过获得扩展的访问令牌之后

$access_token = $facebook->getAccessToken();

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

最新更新