为Facebook页面生成"永不过期"的访问令牌

Iva*_*kin 56 facebook

我已经设法通过API(C#)发布到Facebook页面,但是当页面管理员注销时,会发生以下错误:

"(OAuthException - #190)验证访问令牌时出错:会话无效,因为用户已注销."

如何生成永不过期的访问令牌?

我需要一个无法打开Facebook登录对话框的解决方案.

小智 30

您可以按照以下说明生成永不过期的访问令牌而无需编码:

  1. 打开图形浏览器:https://developers.facebook.com/tools/explorer/.
  2. 从右上角的下拉列表中选择您的应用程序.
  3. 从"获取令牌"下拉列表中选择您的粉丝页面.
  4. 单击"提交"按钮以生成令牌.
  5. 从"搜索字段"左侧输入access_token,然后再次单击"提交".从主窗口复制此令牌.
  6. 打开https://developers.facebook.com/tools/debug/accesstoken并在此处粘贴令牌.单击"调试".
  7. 单击"扩展访问令牌"按钮.这将生成永不过期的令牌.

  • 这是一个60天的令牌. (6认同)

Ari*_*Ari 23

这是我使用PHP SDK生成"Never"过期访问令牌的代码:

$facebook = new \Facebook\Facebook([
  'app_id' => '{app-id}',
  'app_secret' => '{app-secret}',
  'default_graph_version' => 'v2.10',
  'default_access_token' => '{access-token}'
]);

// Exchange token
$token = $facebook->post('/oauth/access_token',
    array(  
        'grant_type' => 'fb_exchange_token',           
        'client_id' => 'APP ID',
        'client_secret' => 'APP Secret',
        'fb_exchange_token' => 'access Token'
    )
);
$token = $token->getDecodedBody();
$token = $token['access_token'];

echo $token;
Run Code Online (Sandbox Code Playgroud)

我回显访问令牌,然后使用访问令牌调试器对其进行调试.结果应该是:Expires: Never.

文档中的参考:

  • 我用这个方法唯一能得到的是一个在2个月内到期的令牌.任何的想法? (3认同)
  • 使用Facebook SDK的原生移动应用程序将获得长期访问令牌,大约可以使用60天.**当使用您的应用程序的人向Facebook的服务器发出请求时,这些令牌将每天刷新一次**.如果没有请求,则令牌将在大约60天后过期,并且该人将不得不再次通过登录流程以获得新令牌.来自:https://developers.facebook.com/docs/facebook-login/access-tokens/#extending (2认同)

Iva*_*kin 11

  1. 为粉丝页面的管理员生成长期令牌http://appdevresources.blogspot.sg/2012/11/extend-facebook-access-token-make-it.html(图片很好的解释)
  2. 为粉丝页面本身生成长期令牌http://appdevresources.blogspot.sg/2012/11/retrieving-facebook-page-id-and.html
  3. 使用来自2)的令牌在粉丝页面的墙上发布(不需要Facebook登录对话框)
  4. 结果令牌永不过期(即使粉丝页面的管理员注销了)

  • 步骤3是否必须使其工作,或者我可以通过从页面执行一些读取来生成永不过期的令牌吗? (2认同)

归档时间:

查看次数:

92728 次

最近记录:

6 年 前