86

我有一个用 php 编写的博客站点,它使用 php curl 传递的简单 http 帖子请求将新的博客帖子发布到 twitter 和博客自动 ping。

我有一个博客网站的 Facebook 页面,并希望将更新发布到页面上的墙上,有没有简单的方法可以做到这一点?

我真正想要的是一个 url 和一组参数来打包为一个 http post 请求。

请注意,这是在新样式页面而不是个人资料上发布到墙上。

提前致谢。

4

6 回答 6

65

从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 文档。

于 2010-08-07T08:26:45.673 回答
9

这对我有用:

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);
}
于 2011-06-05T12:56:20.400 回答
8

Harish 在这里有答案 - 除非您需要manage_pages在进行身份验证时请求许可,然后在发布时使用page-id而不是me......

$result = $facebook->api('page-id/feed/','post',$attachment);
于 2011-05-16T09:26:01.753 回答
5

正如弗兰克指出的那样,如果不创建应用程序并使用模板化的提要发布者,您将无法自动发布到 Facebook 墙上。

您唯一能做的就是使用他们提供的“共享”小部件,这需要用户交互。

于 2009-04-09T19:19:19.153 回答
3

如果您的博客输出 RSS 提要,您可以使用 Facebook 的“ RSS Graffiti ”应用程序将该提要发布到 Facebook 的墙上。还有其他 RSS Facebook 应用程序;只需搜索“Facebook 的 RSS 应用程序”...

于 2009-10-22T17:58:14.980 回答
0

您可以通过选择 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 登录页面。

发布到 facebook 墙 php sdk

<?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/

于 2017-10-08T04:41:13.397 回答