php - 验证访问 token 时出错 : Session has expired at unix time

标签 php facebook facebook-graph-api facebook-php-sdk facebook-access-token

Possible Duplicate:
Implication of Facebook offline_access deprecation

我在这里发布这个问题是因为我无法在任何地方找到适合我的具体案例的答案。

我创建了一个服务器端 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 中,但我不知道如何以我在此应用程序中使用的格式生成新的 access_token。

这是我们迄今为止使用的 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);

如何生成该格式的新 token ?

非常欢迎任何帮助!

提前感谢您的任何想法

最好, 棒极了。

最佳答案

您的粉丝页面可以拥有永不过期的 token 。请按照简单的步骤操作:

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

    How to extend access token validity since offline_access deprecation

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

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

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

(您可以使用Facebook's Debug Tool来检查 token 的有效性。)

关于php - 验证访问 token 时出错 : Session has expired at unix time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14007430/

相关文章:

java - Facebook:图形 API java 库

iphone - IOS SDK Facebook SSO - 用户从应用程序外部的 Facebook 注销?

php - AJAX:如何在按下 "Enter"后让按钮提交?

facebook - 在Facebook Photos上使用Opencv

PHP session 未在 css 文件中读取

ios - Facebook 应用程序 ID 错误

php - Facebook 图形 API。如何获取帖子的评论

android - Facebook APP : allow inapp invites to non app using fb users

php - 如何正确加入我的 table ?

php - Symfony + HTML5Boilerplate 集成?