【发布时间】:2013-10-31 12:49:57
【问题描述】:
我使用 Facebook PHP SDK 3.0.1(目前最新)。 我需要做的是在页面上以页面的身份发布。
我尝试用从页面 (/me/accounts) 获得的 access_token 替换 access_token,但现在它说令牌由于某种原因无效。 Facebook“模拟”页面现在处于离线状态,我在 API 中看不到任何关于做我想做的事情的信息。也许我迷路了,或者没有寻找正确的方向。
这是我修改并用于存档的 example.php:
require '../src/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxx'
));
// Get User ID
$user = $facebook->getUser();
//Lists all the applications and pages
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$accounts_list = $facebook->api('/me/accounts');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
$page_selected = 'xxxxxxxxxxxx';
$page_access_token = $accounts_list['data']['0']['access_token'];
echo 'page_access_token:' . $page_access_token;
<?php
if (isset($_GET['publish'])){
try {
$publishStream = $facebook->api("/$page_selected/feed", 'post', array(
'access_token' => '$page_access_token',
'message' => 'Development Test message',
'link' => 'http://xxxxxxx.com',
'picture' => 'http://xxxxxx/xxxx_logo.gif',
'name' => 'xxxxxxxx Goes Here',
'description'=> 'And the exciting description here!'
)
);
//as $_GET['publish'] is set so remove it by redirecting user to the base url
} catch (FacebookApiException $e) {
echo($e);
echo $publishStream;
echo 'catch goes here';
}
}
?>
由于我无法回答自己的问题,因此我编辑了问题。
浏览了整个 API..
解决方案:
在作为页面发布之前,您需要将 access_token 设置为一个页面拥有。
$facebook->setAccessToken($page_access_token);
这样做了,之后一切都按预期进行,无需修改发布功能并在发布中添加“access_token”选项。
【问题讨论】:
-
代码太多,我无法阅读
-
抱歉,删掉了代码。
-
Facebook 回答您的问题:How-To: Publish updates to people who like your Open Graph Page
-
运行该示例给出了 http 400 错误。我也看不出将“id”设置为您的 OG 网址将如何解决问题。它也没有说明如何使用 Facebook PHP SDK
-
本教程应该会有所帮助。它显示了如何列出帐户中的页面:net.tutsplus.com/tutorials/php/…
标签: php facebook post facebook-graph-api