我有一个用php编写的博客网站,它使用php curl传递的简单http帖子请求,在后台自动将新博客帖子发布到twitter,并自动在博客ping。
我有一个用于博客站点的Facebook页面,并且希望将更新发布到页面的墙上,是否有一种简单的方法?
我真正想要的是一个URL和一组要打包为HTTP发布请求的参数。
请注意,这是在新样式页面而非配置文件上发布到墙上。
提前致谢。
我有一个用php编写的博客网站,它使用php curl传递的简单http帖子请求,在后台自动将新博客帖子发布到twitter,并自动在博客ping。
我有一个用于博客站点的Facebook页面,并且希望将更新发布到页面的墙上,是否有一种简单的方法?
我真正想要的是一个URL和一组要打包为HTTP发布请求的参数。
请注意,这是在新样式页面而非配置文件上发布到墙上。
提前致谢。
Answers:
从github获取PHP SDK并运行以下代码:
<?php
$attachment = array(
'message' => 'this is my message',
'name' => 'This is my demo Facebook application!',
'caption' => "Caption of the Post",
'link' => 'http://mylink.com',
'description' => 'this is a description',
'picture' => 'http://mysite.com/pic.gif',
'actions' => array(
array(
'name' => 'Get Search',
'link' => 'http://www.google.com'
)
)
);
$result = $facebook->api('/me/feed/', 'post', $attachment);
上面的代码会将消息发布到您的墙上...,如果您想发布到您的朋友或其他墙上,请替换me
为该用户的Facebook用户ID。有关更多信息,请参阅API文档。
这对我有用:
try {
$statusUpdate = $facebook->api('/me/feed', 'post',
array('name'=>'My APP on Facebook','message'=> 'I am here working',
'privacy'=> array('value'=>'CUSTOM','friends'=>'SELF'),
'description'=>'testing my description',
'picture'=>'https://fbcdn-photos-a.akamaihd.net/mypicture.gif',
'caption'=>'apps.facebook.com/myapp','link'=>'http://apps.facebook.com/myapp'));
} catch (FacebookApiException $e) {
d($e);
}
Harish在这里有答案-除非您需要manage_pages
在身份验证时请求权限,然后在发布时使用,page-id
而不是me
...。
$result = $facebook->api('page-id/feed/','post',$attachment);
如果您的博客输出RSS提要,则可以使用Facebook的“ RSS Graffiti ”应用程序将该提要发布到Facebook的墙上。还有其他RSS Facebook应用程序。只需搜索“用于RSS应用程序的Facebook” ...
您可以通过选择HTTP方法并设置可选参数来进行api调用:
$facebook->api('/me/feed/', 'post', array(
'message' => 'I want to display this message on my wall'
));
将帖子提交到Facebook Wall:
包括fbConfig.php文件以连接Facebook API并获取访问令牌。
发布消息,名称,链接,描述和图片将被提交到Facebook墙。将显示投稿状态。
如果FB访问令牌($ accessToken)不可用,将生成Facebook登录URL,并将用户重定向到FB登录页面。
<?php
//Include FB config file
require_once 'fbConfig.php';
if(isset($accessToken)){
if(isset($_SESSION['facebook_access_token'])){
$fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
}else{
// Put short-lived access token in session
$_SESSION['facebook_access_token'] = (string) $accessToken;
// OAuth 2.0 client handler helps to manage access tokens
$oAuth2Client = $fb->getOAuth2Client();
// Exchanges a short-lived access token for a long-lived one
$longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']);
$_SESSION['facebook_access_token'] = (string) $longLivedAccessToken;
// Set default access token to be used in script
$fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
}
//FB post content
$message = 'Test message from CodexWorld.com website';
$title = 'Post From Website';
$link = 'http://www.codexworld.com/';
$description = 'CodexWorld is a programming blog.';
$picture = 'http://www.codexworld.com/wp-content/uploads/2015/12/www-codexworld-com-programming-blog.png';
$attachment = array(
'message' => $message,
'name' => $title,
'link' => $link,
'description' => $description,
'picture'=>$picture,
);
try{
//Post to Facebook
$fb->post('/me/feed', $attachment, $accessToken);
//Display post submission status
echo 'The post was submitted successfully to Facebook timeline.';
}catch(FacebookResponseException $e){
echo 'Graph returned an error: ' . $e->getMessage();
exit;
}catch(FacebookSDKException $e){
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
}else{
//Get FB login URL
$fbLoginURL = $helper->getLoginUrl($redirectURL, $fbPermissions);
//Redirect to FB login
header("Location:".$fbLoginURL);
}
引用:
https://github.com/facebookarchive/facebook-php-sdk
https://developers.facebook.com/docs/pages/publishing/
https://developers.facebook.com/docs/php/gettingstarted
http://www.pontikis.net/blog/auto_post_on_facebook_with_php
https://www.codexworld.com/post-to-facebook-wall-from-website-php-sdk/