我在这里发布这个问题是因为我无法在任何地方找到答案。
我创建了一个服务器端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);
如何以该格式生成新令牌?
非常欢迎任何帮助!
提前感谢您的任何想法
最佳, FAB。
答案 0 :(得分:4)
您的粉丝专页可以使用永不过期的令牌。按照简单的步骤:
获取管理员(即您的)扩展令牌(2个月有效期)。通过链接获取扩展令牌。完美地运作:
How to extend access token validity since offline_access deprecation
使用此令牌,获取页面/应用列表 -
$facebook->api("/USER_ID/accounts");
获取任何页面的永不过期的访问令牌 -
$facebook->api("/PAGE_ID?fields=access_token");
(您可以使用Facebook's Debug Tool检查令牌的有效性。)