Come si pubblica sul muro su una pagina Facebook (non sul profilo)


86

Ho un sito di blog scritto in php e pubblica nuovi post su Twitter e un blog ping automaticamente sotto il cofano usando semplici richieste di post http passate usando php curl.

Ho una pagina Facebook per il sito del blog e desidero che gli aggiornamenti vengano pubblicati sul muro sulla pagina, esiste un modo semplice per farlo?

Quello che voglio veramente è un URL e un set di parametri da raggruppare come richiesta di post http.

Nota che questo è per pubblicare sul muro su una nuova pagina di stile, non su un profilo.

Grazie in anticipo.


Hai provato il wiki per gli sviluppatori di Facebook su wiki.developers.facebook.com/index.php/Main_Page o altrove nel loro sito per sviluppatori developers.facebook.com/?ref=pf ?
DOK

Non mi piacciono gli sviluppatori di Facebook ma penso che devi prima scrivere un'app per fb, per essere autorizzato a farlo.
settembre

Risposte:


65

Ottieni PHP SDK da GitHub ed esegui il codice seguente:

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

il codice sopra invierà il messaggio sulla tua bacheca ... e se vuoi postare sulla bacheca dei tuoi amici o di altri, sostituisci mecon l'ID utente Facebook di quell'utente..per ulteriori informazioni guarda la documentazione API.


quel codice funziona benissimo !, ma nel post non c'è nessuna immagine .. Cosa mi manca qui? Grazie!
Diego

@Diego controlla l'URL delle foto. nell'esempio sopra è mysite.com/pic.gif. quindi recupererà l'immagine nell'URL fornito. quindi prova a impostarlo. si prega di controllare la documentazione di fb per qualsiasi cambiamento nei parametri, perché l'ultima volta che ho lavorato in FB è stato agosto 2010 ..
Harish Kurup

$ facebook è una variabile incorporata nell'installazione di php? in caso contrario, come viene creata l'istanza $ facebook?
microonde sadomaso

@sadmicrowave la variabile $ facebook è l'oggetto della classe Facebook (potrebbe aver cambiato il nome della classe quindi per favore leggi i documenti dopo aver preso l'idea). È necessario creare un'istanza dell'oggetto con il seguente codice "$ facebook = new Facebook (array ('appId' => APPID, 'secret' => SECRETKEY, 'cookie' => true));"
Harish Kurup

Devi anche avere l'SDK PHP installato nella tua app per avere accesso alla classe Facebook
mitchellhislop

9

Questo funziona per me:

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

Ho un problema con OAuth, errore 200. La mia APP richiede manage_pages, publish_actions, publish_stream ... Qualche idea?
Jepser Bernardino

8

Harish ha la risposta qui, tranne per il fatto che è necessario richiedere l' manage_pagesautorizzazione durante l'autenticazione e quindi utilizzare page-idinvece di mequando si pubblica ...

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

1
ma devi aver bisogno del token di accesso alla pagina per pubblicare come pagina
Danish Iqbal

5

Non è possibile pubblicare automaticamente sui wall di Facebook senza creare un'applicazione e utilizzare l'editore di feed basato su modelli, come ha sottolineato Frank.

L'unica cosa che puoi fare è utilizzare i widget di "condivisione" che forniscono, che richiedono l'interazione dell'utente.


3

Se il tuo blog emette un feed RSS, puoi utilizzare l'applicazione " RSS Graffiti " di Facebook per pubblicare quel feed sulla tua bacheca di Facebook. Ci sono anche altre app RSS per Facebook; cerca semplicemente "Facebook per app RSS" ...


0

È possibile effettuare chiamate API scegliendo il metodo HTTP e impostando parametri opzionali:

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

Invia post alla bacheca di Facebook:

Includi il file fbConfig.php per connettere l'API di Facebook e ottenere il token di accesso.

Pubblica messaggio, nome, link, descrizione e l'immagine verranno inviati al muro di Facebook. Verrà mostrato lo stato dell'invio del post.

Se il token di accesso FB ($ accessToken) non è disponibile, verrà generato l'URL di accesso a Facebook e l'utente verrà reindirizzato alla pagina di accesso FB.

Pubblica sulla bacheca di 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);
}

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/


Grazie. Hai provato il codice però? Gli snippet di anteprima dei link personalizzati sono ora obsoleti, quindi il codice non verrà pubblicato su una pagina ( developers.facebook.com/blog/post/2017/06/27/… )
user919426
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.