Facebookページ(プロフィールではない)の壁にどのように投稿しますか


86

私はphpで書かれたブログサイトを持っており、新しいブログ投稿をTwitterに投稿し、phpcurlを使用して渡された単純なhttppostリクエストを使用して内部でブログに自動的にpingを送信します。

ブログサイトのFacebookページがあり、更新をページの壁に投稿したいのですが、これを行う簡単な方法はありますか?

私が本当に欲しいのは、httppostリクエストとして分割するためのURLとパラメータのセットです。

これは、プロファイルではなく、新しいスタイルのページの壁に投稿するためのものであることに注意してください。

前もって感謝します。


Facebook Developer Wikiをwiki.developers.facebook.com/index.php/Main_Pageまたは開発者サイトdevelopers.facebook.com/?ref=pfの他の場所で試しましたか?
DOK

私はFacebookの開発には興味がありませんが、それを行う権限を得るには、最初にfbアプリを作成する必要があると思います。
sepehr 2009年

回答:


65

githubからPHPSDKを取得し、次のコードを実行します。

<?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です。そのため、指定されたURLの写真をフェッチします。設定してみてください。2010年8月...だった私はFBのフロントで働いていた最後の時間cosを、パラメータの中の任意の変化のためのFBのマニュアルを参照してください行ってください
ハリッシュKurup

$ facebookはphpインストールに組み込まれている変数ですか?そうでない場合、$ facebookインスタンスはどのように作成されますか?
sadmicrowave 2011

@sadmicrowave変数$ facebookはクラスFacebookのオブジェクトです(クラス名が変更されている可能性があるため、アイデアを得た後にドキュメントを読んでください)。次のコードでオブジェクトをインスタンス化する必要があります "$ facebook = new Facebook(array( 'appId' => APPID、 'secret' => SECRETKEY、 'cookie' => true));"
Harish Kurup 2011

Facebookクラスにアクセスするには、アプリにPHP SDKをインストールする必要もあります
mitchellhislop 2011年

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を要求します...何か考えはありますか?
Jepser Bernardino 2012

8

ハリッシュはここで答えを持っています-manage_pages認証するときに許可を要求し、投稿するときのpage-id代わりに使用する必要があることを除いてme...

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

1
ただし、ページとして投稿するには、ページアクセストークンが必要です
デンマークのIqbal 2012

5

フランクが指摘したように、アプリケーションを作成し、テンプレート化されたフィードパブリッシャーを使用しないと、Facebookのウォールに自動的に投稿することはできません。

あなたができる唯一のことは、それらが提供する「共有」ウィジェットを使用することです。これにはユーザーの操作が必要です。


3

ブログがRSSフィードを出力する場合は、Facebookの「RSSGraffiti」アプリケーションを使用して、そのフィードをFacebookのウォールに投稿できます。他のRSSFacebookアプリもあります。「FacebookでRSSアプリを検索」...


0

HTTPメソッドを選択し、オプションのパラメーターを設定することで、API呼び出しを行うことができます。

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

Facebookウォールに投稿を送信:

fbConfig.phpファイルを含めてFacebookAPIに接続し、アクセストークンを取得します。

投稿メッセージ、名前、リンク、説明、写真がFacebookのウォールに送信されます。送信後のステータスが表示されます。

FBアクセストークン($ accessToken)が利用できない場合、FacebookログインURLが生成され、ユーザーはFBログインページにリダイレクトされます。

FacebookのウォールPHPSDKに投稿する

<?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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.