2

抱歉,如果以前已经处理过此问题,但是我的网站人员在使其正常工作时遇到了问题。我正在使用 facebook open graph api 将我的 PHP 网站 CMS 的推荐信发布到我的 facebook 业务页面。我有一个 facebook 个人资料,并从我的个人资料创建了一个业务页面。我还在我的个人资料下创建了一个应用程序,以获取一个应用程序 ID 和密钥,用于图形 api 代表我从我的网站发布到我的 facebook 业务页面。问题是我需要将帖子直接转到我的业务页面并作为我的业务发布,而不是作为我或代表我。目前,该 api 正在将帖子直接发送到我的个人资料墙上,显示我通过我的业务页面共享链接,并且它根本没有出现在业务页面上。我需要一种将推荐书直接发布到我的业务页面而不是在我的个人资料墙上的方法。我怎么做?我的理解是他使用了个人 ID 和应用程序密码以及业务页面应用程序 ID 和密码,但似乎得到了相同的结果。
下面的代码是正在使用的,任何帮助将不胜感激;

<?php
$facebook = new Facebook(array(
    'appId'  => 'myappid',
    'secret' => 'mysecrectkey',
));
// Get User ID
$user = $facebook->getUser();
if ($user) {   
    try
    {
        $user_profile = $facebook->api('/me');
        $AccessToken  = $facebook->getAccessToken();
        $data = array("message" => $pdes,"link" => "http://www.website.com.au/testimonial.php", "name" => $name);
        $share = $facebook->api("/me/feed", "POST", $data);
    }
    catch (FacebookApiException $e)
    {
        error_log($e);
        $user = null;
    }
}
?>
4

1 回答 1

0

好吧,你的问题在这里:

$share = $facebook->api("/me/feed", "POST", $data);

此代码将消息发送到您的墙上,而不是页面。为了代表您的页面在您的 Facebook 页面上发帖,首先,您的应用需要获取manage_pagespublish_stream权限。拥有它后,您需要获取要发布的页面的访问令牌:

$pages = $facebook->api('/me/accounts');
foreach($pages as $page)
{
 if($page['id'] == YOUR_PAGE_ID)
    $data['access_token'] = $page['access_token'];
}

获得页面访问令牌后,您必须使用它在页面墙上发送消息:

$facebook->api(YOUR_PAGE_ID . '/feed', 'POST', $data);
于 2013-03-08T07:41:37.010 回答