0

我的 facebook 用户是几个 facebook 页面的管理员。我要做的是自动从外部 php 网站发布到这些页面之一的提要。例如,当网站上发生有趣的事情时,向页面的新闻流发布通知。

我在 facebook 中创建了一个应用程序,我正在使用 php fb api,如下所示:

//actual values redacted, obviously
$appId = 'my_app_id';
$pageId = 'my_page_id';
$secret = 'my_app_secret';

//First i'm getting the authtoken
$args = array(
    'grant_type' => 'client_credentials',
    'client_id' => $appid,
    'client_secret' => $secret
);

$ch = curl_init();
$url = 'https://graph.facebook.com/oauth/access_token';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
$data = curl_exec($ch);

//this comes back from facebook like auth_token=xxxxx
$token = str_replace("access_token=", "", $data); //remove 'auth_token='


$facebook = new Facebook(array(
        'appId' => $appId,
        'secret' => $secret,
        'cookie' => false,
        'domain' => 'mydomain.net'
    ));


$facebook->api("/$pageId/feed", 'post', array(           
    'access_token' => $token,
    'link' => 'http://www.example.com'
));

这会连接到 facebook 并尝试发布到提要,但没有说:

(#200) The user hasn't authorized the application to perform this action

所以我的问题是,我应该如何授权应用程序发布到提要?我在应用程序上看不到任何设置,并且似乎无法向页面“添加”权限。在这一点上我完全迷失了,facebook文档没有多大帮助。

任何帮助将非常感激。我已经为此浪费了一整天。

4

2 回答 2

0

尝试从此数组中删除 $token 参数

$facebook->api("/$pageId/feed", 'post', array(           
    **'access_token' => $token,**
    'link' => 'http://www.example.com'
));

并在 POST API 调用之前以这种方式设置令牌

$facebook->setAccessToken($token);

让我知道它是怎么做的

于 2012-06-28T23:27:10.217 回答
0

所以我的问题是,我应该如何授权应用程序发布到提要?我在应用程序上看不到任何设置,并且似乎无法向页面“添加”权限。

您必须首先获得一个访问令牌-用户访问令牌(长期存在的令牌在 60 天后过期,因此您必须定期返回您的应用程序进行更新),或者页面访问令牌(不t 默认过期)。并且您必须要求获得必要的许可才能发布(代表用户行事时)。

要获得它们,您必须通过身份验证流程。所有细节都在这里描述:https ://developers.facebook.com/docs/authentication/

如果您还不太熟悉 API 的使用,可能还有帮助的可能是Graph API Explorer——在那里您可以“玩转”,发出不同类型的请求,查看结果或错误是什么。它允许您在那里生成用户访问令牌(让您了解自己在应用程序中必须做什么)。

于 2012-06-29T07:53:36.647 回答