如何从PHP网站上发布Facebook粉丝页面?

时间:2014-03-18 16:03:36

标签: php facebook access-token facebook-access-token

我需要在用户在其后端创建文章后立即发布文章。 我正在使用sdk-php和这个脚本:

require 'facebook-php-sdk/src/facebook.php';

$config = array(
    'appId' => 'xxxxxxxxxxxxxxxxxxxxxxxx',
    'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    'allowSignedRequest' => false 
  );

  $facebook = new Facebook($config);
  $params = array(
  "access_token" => "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "message" => "Message",
  "link" => "http://www.myarticle.com",
  "picture" => "http://www.myarticle.com/img1.png",
  "name" => "Name",
  "caption" => "Caption",
  "description" => "Description."
);

// post to Facebook

try {
  $result = $facebook->api('/THE_PAGE_ID/feed', 'POST', $params);
  echo 'Successfully posted to Facebook';
} catch(Exception $e) {
  echo $e->getMessage();
}

此脚本有时可用,有时不起作用,并且Exception为“验证访问令牌时出错:这可能是因为用户已注销或可能是由于系统错误。”有时帖子被创建为The_Page_wall的“/ me”。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我猜你正在使用所谓的短期用户访问令牌。在此处获取不同类型的访问令牌的概述:

https://developers.facebook.com/docs/facebook-login/access-tokens/

我认为你有两种情况:

  1. 通过此端点将短期令牌交换为长期令牌 (60天): https://developers.facebook.com/docs/facebook-login/access-tokens/#extending
  2. 如果您不需要发布帖子,请使用页面访问令牌 一个实际的用户,但页面本身: https://developers.facebook.com/docs/facebook-login/access-tokens/#pagetokens