从网站cms向Facebook商业页面发布推荐书

时间:2013-03-08 06:12:11

标签: php facebook facebook-graph-api content-management-system

很抱歉,如果之前已经处理过这个问题,但我的网站工作人员在解决这个问题时遇到了问题。 我正在使用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;
    }
}
?>

1 个答案:

答案 0 :(得分: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);