Jak publikujesz na ścianie na stronie na Facebooku (nie w profilu)

86

Mam witrynę blogową napisaną w php, która wysyła nowe posty na twitter i ping bloga automatycznie pod maską, używając prostych żądań postów http przesyłanych za pomocą php curl.

Mam stronę na Facebooku z blogiem i chcę, aby aktualizacje były umieszczane na tablicy na tej stronie. Czy jest na to prosty sposób?

To, czego naprawdę chcę, to adres URL i zestaw parametrów do spakowania jako żądanie postu http.

Zauważ, że jest to publikacja na ścianie na nowej stronie stylu, a nie profilu.

Z góry dziękuję.

Mata
źródło
Czy wypróbowałeś Facebook Developer Wiki pod adresem wiki.developers.facebook.com/index.php/Main_Page lub gdzie indziej w ich witrynie dla programistów developers.facebook.com/?ref=pf ?
DOK,
Nie jestem fanem Facebooka, ale myślę, że najpierw musisz napisać aplikację na Facebooku, aby mieć do tego uprawnienia.
wrzesień

Odpowiedzi:

65

Pobierz PHP SDK z github i uruchom następujący kod:

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

powyższy kod spowoduje wysłanie wiadomości na twoją ścianę ... a jeśli chcesz zamieścić ją na metablicy znajomych lub innych osób, zastąp ją identyfikatorem użytkownika Facebooka tego użytkownika ... po dalsze informacje zajrzyj do dokumentacji API.

Harish Kurup
źródło
ten kod działa super !, ale w poście nie ma obrazka .. Czego tu brakuje? Dzięki!
Diego
@Diego sprawdź adres URL zdjęć. w powyższym przykładzie jego mysite.com/pic.gif. więc będzie pobierać obraz z podanego adresu URL. więc spróbuj to ustawić. proszę sprawdzić dokumentację fb pod kątem jakichkolwiek zmian parametrów, ponieważ ostatni raz pracowałem na FB w sierpniu 2010 ..
Harish Kurup
czy $ facebook jest zmienną wbudowaną w instalację php? jeśli nie, jak tworzona jest instancja $ facebook?
sadmicrowave
@sadmicrowave zmienna $ facebook jest obiektem klasy Facebook (mogła zmienić nazwę klasy, więc po otrzymaniu pomysłu prosimy o zapoznanie się z dokumentacją). Musisz utworzyć instancję obiektu za pomocą następującego kodu "$ facebook = new Facebook (array ('appId' => APPID, 'secret' => SECRETKEY, 'cookie' => true));"
Harish Kurup
Musisz także mieć zainstalowane PHP SDK w swojej aplikacji, aby mieć dostęp do zajęć na Facebooku
mitchellhislop
9

To działa dla mnie:

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);
}
Helton Uchoa
źródło
Mam problem z OAuth, błąd 200. Moja aplikacja pyta o manage_pages, publication_actions, Published_stream ... Masz jakiś pomysł?
Jepser Bernardino
8

Harish ma odpowiedź tutaj - z wyjątkiem tego, że musisz poprosić o manage_pagespozwolenie podczas uwierzytelniania, a następnie używania page-idzamiast mepodczas wysyłania ....

$result = $facebook->api('page-id/feed/','post',$attachment);
Phill Price
źródło
1
ale musisz potrzebować tokena dostępu do strony, aby opublikować jako stronę
duński Iqbal.
5

Nie możesz automatycznie publikować na ścianach Facebooka bez tworzenia aplikacji i korzystania z szablonów wydawców kanałów, jak wskazał Frank.

Jedyne, co możesz zrobić, to użyć udostępnianych przez nich widżetów „udostępniania”, które wymagają interakcji użytkownika.

Darryl E. Clarke
źródło
3

Jeśli Twój blog generuje kanał RSS, możesz użyć aplikacji „ RSS Graffiti ” na Facebooku, aby zamieścić ten kanał na swojej ścianie w serwisie Facebook. Istnieją również inne aplikacje RSS Facebooka; po prostu wyszukaj „Facebook dla aplikacji RSS” ...

Ricky
źródło
0

Możesz wykonywać wywołania API, wybierając metodę HTTP i ustawiając opcjonalne parametry:

$facebook->api('/me/feed/', 'post', array(
    'message' => 'I want to display this message on my wall'
));

Prześlij post na ścianę Facebooka:

Dołącz plik fbConfig.php, aby połączyć interfejs API Facebooka i uzyskać token dostępu.

Opublikuj wiadomość, imię i nazwisko, link, opis i zdjęcie zostaną przesłane na ścianę Facebooka. Zostanie wyświetlony stan po przesłaniu.

Jeśli token dostępu FB ($ accessToken) nie jest dostępny, zostanie wygenerowany adres URL logowania do Facebooka, a użytkownik zostanie przekierowany na stronę logowania FB.

Opublikuj na facebooku 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);
}

Źródła:

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/

Farhad
źródło
Dzięki. Czy próbowałeś już kodu? Fragmenty podglądu niestandardowego linku są teraz przestarzałe, więc kod nie zostanie opublikowany na stronie ( developers.facebook.com/blog/post/2017/06/27/… )
user919426