使用Graph API通过PHP发布到Facebook动态流

4
我正在使用新的图形API和PHP尝试向用户的墙上发布消息。连接似乎正常,但没有发布。我不确定如何正确设置发布代码。请帮我解决这个问题。对于代码外观不佳的情况,我很抱歉,由于某种原因StackOverflow不想将其全部放在代码块中。
以下是我的完整代码。我是否缺少扩展程序权限请求,或者该代码已经处理了:

PHP代码

<?php

include_once 'facebook.php';

$facebook = new Facebook(array(
    'appId'  => 'xxxxxxxxxxxxxxxxxx',
    'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxx',
    'cookie' => true
));

$session = $facebook->getSession();

if (!$session) {
    $url = $facebook->getLoginUrl(array(
        'canvas' => 1,
        'fbconnect' => 0
    ));
    echo "<script type='text/javascript'>top.location.href = '$url';</script>";

} else {
    try {
        $uid = $facebook->getUser();
        $me = $facebook->api('/me');
        $updated = date("l, F j, Y", strtotime($me['updated_time']));
        echo "Hello " . $me['name'] . "<br />";
        echo "You last updated your profile on " . $updated;

        $connectUrl = $facebook->getUrl(
          'www',
          'login.php',
          array_merge(array(
            'api_key'         => $facebook->getAppId(),
            'cancel_url'      => 'http://www.test.com',
            'req_perms'       => 'publish_stream',
            'display'         => 'page',
            'fbconnect'       => 1,
            'next'            => 'http://www.test.com',
            'return_session'  => 1,
            'session_version' => 3,
            'v'               => '1.0',
          ), $params)
        );

        $result = $facebook->api(
            '/me/feed/',
            'post',
            array('access_token' => $facebook->access_token, 'message' => 'Playing around with FB Graph..')
        );

    } catch (FacebookApiException $e) {
        echo "Error:" . print_r($e, true);
    }
}
?>

也许你可以在 Facebook 上检查一下你的账户,并确保你的应用程序拥有适当的权限。 - Jasmo
1个回答

6
由于您没有指定“req_perms”,并允许应用程序将内容发布到您的墙上,所以会出现这种情况。请确保在您的“req_perms”中添加“publish_stream”。 PHP代码:
$url = $facebook->getLoginUrl(array(
                   'canvas' => 1,   //set to 1 bcoz my application is Iframe app
                   'fbconnect' => 0,
                   'req_perms' => 'publish_stream'
               ));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接