Как вы публикуете на стене на странице в Facebook (не в профиле) - PullRequest
86 голосов
/ 27 марта 2009

У меня есть сайт блога, написанный на php, и он публикует новые посты в Твиттере, а блог автоматически пингуется под капотом, используя простые запросы http, передаваемые с использованием php curl.

У меня есть страница на Facebook для сайта блога, и я хочу, чтобы обновления размещались на стене на странице. Есть ли простой способ сделать это?

Что мне действительно нужно, так это URL-адрес и набор параметров, которые будут отправляться в виде HTTP-запроса.

Обратите внимание, что это сообщение на стене на странице нового стиля, а не в профиле.

Заранее спасибо.

Ответы [ 6 ]

65 голосов
/ 07 августа 2010

Получите PHP SDK от github и запустите следующий код:

<?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 этого пользователя ... для получения дополнительной информации просмотрите Документация по API.

9 голосов
/ 05 июня 2011

Это работает для меня:

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);
}
8 голосов
/ 16 мая 2011

У Хариша есть ответ здесь - за исключением того, что вам нужно запросить разрешение manage_pages при аутентификации и затем использовать page-id вместо me при публикации ....

$result = $facebook->api('page-id/feed/','post',$attachment);
5 голосов
/ 09 апреля 2009

Вы не можете автоматически публиковать на стенах Facebook, не создавая приложение и не используя шаблонного издателя каналов, как указал Фрэнк.

Единственное, что вы можете сделать, это использовать предоставляемые ими виджеты «Поделиться», которые требуют взаимодействия с пользователем.

3 голосов
/ 22 октября 2009

Если ваш блог выводит RSS-канал, вы можете использовать приложение Facebook * RSS Graffiti , чтобы размещать этот канал на своей стене в Facebook. Есть и другие приложения RSS Facebook; просто поиск "Facebook для приложений RSS" ...

0 голосов
/ 08 октября 2017

Вы можете совершать вызовы API, выбрав метод HTTP и установив дополнительные параметры:

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

Refrences:

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/

...