试图使用应用程序发布到facebook页面,但得到;用户没有';t授权应用程序执行此操作“;

试图使用应用程序发布到facebook页面,但得到;用户没有';t授权应用程序执行此操作“;,facebook,facebook-graph-api,Facebook,Facebook Graph Api,我正试图写一个脚本,将更新后的facebook页面的时间线。我创建了一个应用程序,并为该应用程序创建了一个密钥。我使用的代码如下: require_once HOME_PATH . '/include/facebook/facebook.php'; $facebook = new Facebook(array( 'appId' => FACEBOOK_APP_ID, 'secret' => FACEBOOK_APP_SECRET, 'cookie' => tru

我正试图写一个脚本,将更新后的facebook页面的时间线。我创建了一个应用程序,并为该应用程序创建了一个密钥。我使用的代码如下:

require_once HOME_PATH . '/include/facebook/facebook.php';

$facebook = new Facebook(array(
  'appId'  => FACEBOOK_APP_ID,
  'secret' => FACEBOOK_APP_SECRET,
  'cookie' => true,
  'scope' => 'publish_stream',
));

$user_id = $facebook->getUser();
$access_token = $facebook->getAccessToken();

$attachment = array(
  'access_token' => $access_token,
  'message' => 'this is my message',
  'name' => 'name',
  'link' => ROOT_URL . $blog_data['url'] . '.htm',
  'caption' => $blog_data['title'],
  'description' => $blog_data['title'],
);
if ($image = get_first_image($blog_data['body'])) {
  $attachment['picture'] = $image;
}
$facebook->api(FACEBOOK_BLOG_PAGE . '/feed', 'post', $attachment);
我认为这个密钥连接到应用程序,而不是我的用户,所以听起来我必须在facebook上授予权限,但我看到其他一些帖子告诉我,我需要用代码来完成这项工作。这些例子不是很清楚


我知道有人问过类似的问题,但我还没有看到任何明确的答案。有人能澄清一下吗?

如果你想通过这段代码获取用户id:
$user\u id=$facebook->getUser()

首先,您需要通过
$facebook->getLoginUrl(array('scope'=>array('perm','perm2'))
返回的URL登录用户

另外,请注意,我将权限放在哪里,这是我所需要的。不是进入Facebook类构造函数,而是进入方法
getLoginUrl


最后,要发布到页面中,您需要
publish\u actions
权限(而不是
publish\u stream
)。

看起来您还没有完成OAuth舞蹈。您需要这样做。所以它必须直接授权给我的用户?这是否意味着我必须在php代码中存储我的用户密码?似乎我可以在开发者网站上为我的用户创建的令牌只是临时的。。谢谢不,你要做的是将用户引导到一个页面进行登录,他们登录,将代码发送回你,你将代码交换为令牌,就完成了。阅读OAuth或Authentication上的Facebook页面。啊,但我不希望不同的用户这样做。这是我的博客网站,每次我发布博客,我都希望它发布到我的facebook页面。因此,它将始终发布到同一页面。。。我的页面。