2

可能重复:
Facebook offline_access 弃用的含义

我在这里发布这个问题是因为我在任何地方都找不到针对我的具体案例的答案。

我创建了一个服务器端 PHP 应用程序,它每周都会在我们的 FB 粉丝页面上自动发布/展示一个指向我们产品之一的链接,随机。

该脚本在 10 天前一直运行良好,现在手动调用脚本时出现以下错误:

Fatal error: Uncaught OAuthException: Error validating access token: Session has expired at unix time 1355862507. The current unix time is 1356217401. thrown in /home/webadmin/virtualsheetmusic.com/html/facebook/API/base_facebook.php on line 1249

现在,我发现问题出在传递的 access_token 中,但我不知道如何以我在此应用程序中使用的格式生成一个新的。

这是我们迄今为止一直使用的令牌格式:

$fanpagetoken = '<REMOVED ACCESS TOKEN FROM TEXT>';

这是我们用于在墙上发布的 PHP 代码:

    #Define vars...
$day = strtotime($today);
$day = date("l, F j, Y", $day);

$deadline = strtotime("+1 week");
$deadline = date("l, F j, Y", $deadline);

// Create our Application instance (replace this with your appId and secret).


$facebook = new Facebook(array(
  'appId'  => $appid,
  'secret' => $secret,
));



$attachment = array(
                    'access_token' => $fanpagetoken,

                    'message' => "Sheet Music Showcase for ".$day.":",
                    'name' => $headline,
                    'caption' => "Showcase Expiration: $deadline",
                    'link' => 'http://www.ourwebsite.com/s/'.$createsession,
                    'description' => 'View the complete high quality PDF sheet music file, listen to related audio files and more!',
                    'picture' => 'http://www.virtualsheetmusic.com/images/icons/new_downloadsHome/'.$mainid.'.gif',
                    'actions' => array(array('name' => 'Learn more...', 
                                      'link' => 'http://www.virtualsheetmusic.com/s/'.$createsession))
                    );


$result = $facebook->api('/oursitefanpage/feed/',
                            'post',
                            $attachment);

如何生成该格式的新令牌?

非常欢迎任何帮助!

提前感谢您的任何想法

最好的,法布。

4

1 回答 1

4

您可以为您的粉丝页面设置一个永不过期的令牌。遵循简单的步骤:

  1. 获取管理员(即您的)扩展令牌(有效期为 2 个月)。通过链接获取扩展令牌。完美工作:

    自offline_access弃用以来如何延长访问令牌的有效性

  2. 使用此令牌,获取页面/应用程序列表-

    $facebook->api("/USER_ID/accounts"); 
    
  3. 获取任何页面的永不过期的访问令牌-

    $facebook->api("/PAGE_ID?fields=access_token");
    

(您可以使用Facebook 的调试工具来检查令牌的有效性。)

于 2012-12-23T09:54:17.617 回答