我有一个用 php 编写的博客站点,它使用 php curl 传递的简单 http 帖子请求将新的博客帖子发布到 twitter 和博客自动 ping。
我有一个博客网站的 Facebook 页面,并希望将更新发布到页面上的墙上,有没有简单的方法可以做到这一点?
我真正想要的是一个 url 和一组参数来打包为一个 http post 请求。
请注意,这是在新样式页面而不是个人资料上发布到墙上。
提前致谢。
我有一个用 php 编写的博客站点,它使用 php curl 传递的简单 http 帖子请求将新的博客帖子发布到 twitter 和博客自动 ping。
我有一个博客网站的 Facebook 页面,并希望将更新发布到页面上的墙上,有没有简单的方法可以做到这一点?
我真正想要的是一个 url 和一组参数来打包为一个 http post 请求。
请注意,这是在新样式页面而不是个人资料上发布到墙上。
提前致谢。
从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);
正如弗兰克指出的那样,如果不创建应用程序并使用模板化的提要发布者,您将无法自动发布到 Facebook 墙上。
您唯一能做的就是使用他们提供的“共享”小部件,这需要用户交互。
如果您的博客输出 RSS 提要,您可以使用 Facebook 的“ RSS Graffiti ”应用程序将该提要发布到 Facebook 的墙上。还有其他 RSS Facebook 应用程序;只需搜索“Facebook 的 RSS 应用程序”...
您可以通过选择 HTTP 方法并设置可选参数来进行 api 调用:
$facebook->api('/me/feed/', 'post', array(
'message' => 'I want to display this message on my wall'
));
提交帖子到 Facebook 墙:
包含 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/