您如何在Facebook页面(而非个人资料)上发布到墙上


86

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

我有一个用于博客站点的Facebook页面,并且希望将更新发布到页面的墙上,是否有一种简单的方法?

我真正想要的是一个URL和一组要打包为HTTP发布请求的参数。

请注意,这是在新样式页面而非配置文件上发布到墙上。

提前致谢。


您是否尝试过Wiki.developers.facebook.com/index.php/Main_Page或其开发人员站点developer.facebook.com/?ref=pf中的其他位置的Facebook Developer Wiki ?
DOK

我不喜欢Facebook开发人员,但我认为您必须先编写一个fb应用程序,然后才能授权这样做。
sepehr

Answers:


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


该代码很棒!但是在帖子中没有图片。.我在这里缺少什么?谢谢!
迭戈

@Diego检查图片URL。在上面的示例中,其为mysite.com/pic.gif。因此它将获取给定网址中的图片。所以尝试设置它。请不要为您在参数的任何变化FB文件,就算是我最后一次在FB前工作是2010年8月..
哈里什Kurup

是$ facebook内置到php安装中的变量吗?如果没有,如何创建$ facebook实例?
sadmicrowave 2011年

@sadmicrowave变量$ facebook是Facebook类的对象(可能已更改了类名,因此请在理解后阅读文档)。您需要通过以下代码实例化该对象:“ $ facebook = new Facebook(array('appId'=> APPID,'secret'=> SECRETKEY,'cookie'=> true));”
Harish Kurup

您还需要在应用中安装PHP SDK才能访问Facebook类
mitchellhislop

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);
}

我的OAuth出现问题,错误200。我的APP要求输入manage_pages,publish_actions,publish_stream ...有什么想法吗?
杰普·贝纳迪诺

8

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

$result = $facebook->api('page-id/feed/','post',$attachment);

1
但是您需要页面访问令牌才能作为页面发布
Danish Iqbal 2012年

5

正如Frank指出的那样,您必须先创建应用程序并使用模板供稿发布者,才能自动将其发布到Facebook墙上。

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


3

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


0

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

发布到Facebook Wall 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/


谢谢。您是否尝试过代码?自定义链接预览片段是现在已经过时了,因此代码将不会发布到页面(developers.facebook.com/blog/post/2017/06/27/...
user919426
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.