dig*_*rld 17 facebook facebook-graph-api
我设置了一个脚本,允许用户将消息发布到Facebook上的粉丝页面.这一切都有效,但有一个小问题.
问题:
将帖子添加到页面Feed时,它会显示发布用户的个人帐户.我希望它能够显示页面的帐户(例如,当您管理页面时,它说它来自该页面).我发布的帐户拥有该页面的管理员权限,但它仍然显示为个人帖子.
HTTP POST
$url = "https://graph.facebook.com/PAGE_ID/feed";
$fields = array (
'message' => urlencode('Hello World'),
'access_token' => urlencode($access_token)
);
$fields_string = "";
foreach ($fields as $key => $value):
$fields_string .= $key . '=' . $value . '&';
endforeach;
rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
$result = curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
ifa*_*our 17
要以Page而不是用户身份发布,您需要以下内容:
权限:
publish_stream
manage_pages
要求:
access_token
(可以获得,因为我们获得了上面所需的权限)access_token
)access_token
具有长寿命到期时间的管理员之一,如果你想这样做离线(从后台脚本)PHP-SDK示例:
<?php
/**
* Edit the Page ID you are targeting
* And the message for your fans!
*/
$page_id = 'PAGE_ID';
$message = "I'm a Page!";
/**
* This code is just a snippet of the example.php script
* from the PHP-SDK <http://github.com/facebook/php-sdk/blob/master/examples/example.php>
*/
require '../src/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'app_id',
'secret' => 'app_secret',
));
// Get User ID
$user = $facebook->getUser();
if ($user) {
try {
$page_info = $facebook->api("/$page_id?fields=access_token");
if( !empty($page_info['access_token']) ) {
$args = array(
'access_token' => $page_info['access_token'],
'message' => $message
);
$post_id = $facebook->api("/$page_id/feed","post",$args);
} else {
$permissions = $facebook->api("/me/permissions");
if( !array_key_exists('publish_stream', $permissions['data'][0]) ||
!array_key_exists('manage_pages', $permissions['data'][0])) {
// We don't have one of the permissions
// Alert the admin or ask for the permission!
header( "Location: " . $facebook->getLoginUrl(array("scope" => "publish_stream, manage_pages")) );
}
}
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
// Login or logout url will be needed depending on current user state.
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl(array('scope'=>'manage_pages,publish_stream'));
}
// ... rest of your code
?>
Run Code Online (Sandbox Code Playgroud)
这里连接 $user
应该是管理员.
结果:
更多在我的教程中
归档时间: |
|
查看次数: |
50791 次 |
最近记录: |