Como você posta no mural em uma página do Facebook (não no perfil)

86

Eu tenho um blog escrito em php e ele posta novas postagens no twitter e um ping de blog automaticamente sob o capô usando simples solicitações de postagem de http passadas usando php curl.

Tenho uma página no Facebook para o site do blog e quero que as atualizações sejam postadas no mural da página, existe uma maneira simples de fazer isso?

O que eu realmente quero é um url e um conjunto de parâmetros para empacotar como uma solicitação de postagem http.

Observe que isso é para postar na parede em uma página de novo estilo, não em um perfil.

Desde já, obrigado.

Esteira
fonte
Você já experimentou o Facebook Developer Wiki em wiki.developers.facebook.com/index.php/Main_Page ou em outro lugar em seu site de desenvolvedor developers.facebook.com/?ref=pf ?
DOK
Não gosto de facebook dev, mas acho que primeiro você tem que escrever um app fb para ser autorizado a fazer isso.
setembro,

Respostas:

65

Obtenha o SDK do PHP no github e execute o seguinte código:

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

o código acima postará a mensagem no seu mural ... e se você quiser postar no mural de seus amigos ou de outras pessoas, substitua mepelo ID de usuário do Facebook desse usuário ... para obter mais informações, consulte a documentação da API.

Harish Kurup
fonte
aquele código funciona muito bem !, mas no post não tem imagem .. O que estou perdendo aqui? Obrigado!
Diego
@Diego verifique a URL das fotos. no exemplo acima é mysite.com/pic.gif. então ele buscará a foto no url fornecido. então tente configurá-lo. por favor, verifique a documentação do fb para qualquer alteração nos parâmetros, porque a última vez que trabalhei na frente do FB foi em agosto de 2010.
Harish Kurup
$ facebook é uma variável incorporada à instalação do php? se não, como a instância $ facebook é criada?
sadmicrowave
@sadmicrowave a variável $ facebook é o objeto da classe Facebook (pode ter mudado o nome da classe, portanto, leia a documentação após ter a ideia). Você precisa instanciar o objeto pelo seguinte código "$ facebook = new Facebook (array ('appId' => APPID, 'secret' => SECRETKEY, 'cookie' => true));"
Harish Kurup
Você também precisa ter o PHP SDK instalado em seu aplicativo para ter acesso à classe do Facebook
mitchellhislop
9

Isso funciona para mim:

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
fonte
Estou tendo um problema com o OAuth, erro 200. Meu APP pede manage_pages, publish_actions, publish_stream ... Alguma ideia?
Jepser Bernardino
8

Harish tem a resposta aqui - exceto que você precisa solicitar manage_pagespermissão ao autenticar e usar o em page-idvez de meao postar ....

$result = $facebook->api('page-id/feed/','post',$attachment);
Phill Price
fonte
1
mas você deve precisar do token de acesso à página para postar como página
Dinamarquês Iqbal
5

Você não pode postar nas paredes do Facebook automaticamente sem criar um aplicativo e usar o editor de feeds modelo, como Frank apontou.

A única coisa que você pode fazer é usar os widgets de 'compartilhamento' que eles fornecem, que requerem interação do usuário.

Darryl E. Clarke
fonte
3

Se o seu blog produz um feed RSS, você pode usar o aplicativo " RSS Graffiti " do Facebook para postar esse feed em seu mural do Facebook. Existem outros aplicativos RSS do Facebook também; basta pesquisar "Facebook para aplicativos RSS" ...

Ricky
fonte
0

Você pode fazer chamadas de API escolhendo o método HTTP e definindo parâmetros opcionais:

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

Enviar postagem para o mural do Facebook:

Inclua o arquivo fbConfig.php para conectar a API do Facebook e obter o token de acesso.

Postar mensagem, nome, link, descrição e a foto serão enviados ao mural do Facebook. O status de envio da postagem será mostrado.

Se o token de acesso do FB ($ accessToken) não estiver disponível, a URL de login do Facebook será gerada e o usuário será redirecionado para a página de login do FB.

Postar no mural do 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/

Farhad
fonte
Obrigado. Você já tentou o código? Snippets de visualização de link personalizado agora estão obsoletos, então o código não será postado em uma página ( developers.facebook.com/blog/post/2017/06/27/… )
user919426