7

Facebookにページがあり、フィード/ウォールからWebサイトへのページに最新の5つの投稿を表示したいと思います。これを行う方法?私はこの解決策を見つけました..それは簡単です

https://developers.facebook.com/docs/reference/plugins/like-box/

そして誰かが私にFacebookAPIを使用するように案内し、それを自分で行うのが最善の方法ですか?

私はこのサイトを構築するためにphpmysqlを使用しています

4

4 に答える 4

17

これがPHPコードです。これをテンプレートに配置する必要があります。

<ul>
<?php
//function to retrieve posts from facebook’s server
function loadFB($fbID){
    $url = "http://graph.facebook.com/".$fbID."/feed?limit=3";
    // Update by MC Vooges 11jun 2014: Access token is now required:
    $url.= '&access_token=YOUR_TOKEN|YOUR_ACCESS_SECRET';// *

    //load and setup CURL
     $c = curl_init($url);
     curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    //get data from facebook and decode JSON
     $page = json_decode(curl_exec($c));
    //close the connection
     curl_close($c);
    //return the data as an object
     return $page->data;
}

/* Change These Values */
// Your Facebook ID
 $fbid = "190506416472588";
// How many posts to show?
 $fbLimit = 10;
// Your Timezone
date_default_timezone_set("America/Chicago");


/* Dont Change */
// Variable used to count how many we’ve loaded
 $fbCount = 0;
// Call the function and get the posts from facebook
 $myPosts = loadFB($fbid);


//loop through all the posts we got from facebook
foreach($myPosts as $dPost){
    //only show posts that are posted by the page admin
    if($dPost->from->id==$fbid){
        //get the post date / time and convert to unix time
         $dTime = strtotime($dPost->created_time);
        //format the date / time into something human readable
        //if you want it formatted differently look up the php date function
         $myTime=date("M d Y h:ia",$dTime);
        ?>
        <ul>
            <li><?php echo($dPost->message) . $myTime; ?></li>
        </ul>
        <?php
        //increment counter
         $fbCount++;
        //if we’ve outputted the number set above in fblimit we’re done
         if($fbCount >= $fbLimit) break;
    }
}
?>
</ul>

このスクリプトを作成するために実行する必要がある2つのこと。

  1. サーバーでcURLが有効になっていることを確認してください

  2. スクリプト内のFacebookIDは自分で変更する必要があります。

*アクセストークンは次の方法で取得できます。

$token = 'https://graph.facebook.com/oauth/access_token?client_id='.APP_ID.'&client_secret='.APP_SECRET.'&grant_type=client_credentials';
$token = file_get_contents($token); // returns 'accesstoken=APP_TOKEN|APP_SECRET'
于 2012-05-09T10:54:26.970 に答える
15
  1. Facebookにログイン
  2. フェイスブック開発者セクション「アプリ」に移動します
  3. 新しいアプリを登録します。新しいアプリを登録するだけで済みます。すべての追加データはオプションです。
  4. 同じ「アプリ」セクションからアプリID/APIキーとアプリシークレットをコピーします。
  5. facebook.phpおよびbase_facebook.phpファイルをリポジトリからサーバーにコピーします
  6. Facebookアカウントからウォールコンテンツをリクエストするには、APIへのポリモーフィッククエリを使用します

    require 'facebook.php';
    $facebook = new Facebook(array(
        'appId' => 'YOUR_APP_ID',
        'secret' => 'YOUR_APP_SECRET',
    ));
    
    $fbApiGetPosts = $facebook->api('/YOUR_FACEBOOK_ACCOUNT_ID/feed?limit=5');
    if (isset($fbApiGetPosts["data"]) && !empty($fbApiGetPosts["data"])) {
        // display contents of $fbApiGetPosts["data"] array
    }
    

    YOUR_APP_IDをアプリIDに、YOUR_APP_SECRETをアプリシークレットに、YOUR_FACEBOOK_ACCOUNT_IDをターゲットのFacebookアカウントに置き換えて、投稿を取得します。

多態的なクエリは基本的にパス/URLです。前述のFacebookAPIリファレンスドキュメント内の詳細情報。

ターゲットのFacebookアカウントのウォールが公開されている場合、それらを表示するために、これ以外のものは必要ありません。

于 2013-04-16T13:03:07.533 に答える
2

ここでOkkyの答えに問題があり、理想的な回避策ではありませんが、可能性があることがわかりました。

FacebookウォールのRSSフィードを使用してから、選択したRSSリーダーで解析します。

https://www.facebook.com/feeds/page.php?format=rss20&id=YOUR_UNIQUE_ID

IDを取得する簡単な方法は次のとおりです

于 2013-04-18T04:09:22.823 に答える
0

だから、両方とも私を助けるオッキーとディールの答えを混同するには、あなたはこのように見える何かで終わる必要があります。また、投稿URLにリンクするアンカータグを追加します。

<?php
$fbApiGetPosts = $facebook->api('/YOUR_FACEBOOK_ACCOUNT_ID/feed?limit=5');
if (isset($fbApiGetPosts["data"]) && !empty($fbApiGetPosts["data"])) {
    //loop through all the posts we got from facebook
    foreach($fbApiGetPosts["data"] as $dPost){
        //only show posts that are posted by the page admin
        if($dPost["from"]["id"]==$fbid){
            //get the post date / time and convert to unix time
             $dTime = strtotime($dPost["created_time"]);
            //format the date / time into something human readable
            //if you want it formatted differently look up the php date function
            $myTime=date("M d Y h:ia",$dTime);
            ?>
                <li><a href="<?php echo($dPost["link"]); ?>">
                                        <?php echo($dPost["message"]) . "<br>" .
                                         $myTime; ?></a></li>
            <?php
        }
    }   
}
?>
于 2014-04-05T23:27:39.617 に答える