如何在我的Facebook页面中显示最新的帖子到我的网站

时间:2012-05-09 10:45:27

标签: php facebook facebook-graph-api facebook-c#-sdk

我在Facebook上有页面,我想在我的网站上显示从我的Feed /墙上的最新5个帖子。这该怎么做?我找到了这个解决方案......很容易

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

有人指导我使用 facebook api 并自行完成 什么是最好的方式?

我使用php mysql来构建这个网站

4 个答案:

答案 0 :(得分: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>

制定此脚本必须做两件事。

  1. 确保您的服务器已启用cURL

  2. 您将更改脚本中的Facebook ID。

  3. *您可以通过以下方式获取访问令牌:

    $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'
    

答案 1 :(得分:15)

  1. 登录facebook
  2. 转到facebok开发人员部分“Apps
  3. 注册新应用,您只需注册新应用,所有其他数据都是可选的
  4. 从同一个“Apps”部分复制您的App ID / API密钥和App Secret。
  5. facebook.phpbase_facebook.php文件从repo复制到您的服务器
  6. 使用polymorphic query来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帐户,您希望从中获取帖子。

  7. 多态查询基本上是路径/ URL。更多信息在前面提到的facebook api reference docs

    如果您的目标Facebook帐户留言墙是公开的,那么您无需查看其他任何内容。

答案 2 :(得分:2)

我在Okky的答案上遇到了麻烦,我找到了一个可能的,尽管不理想的工作。

使用Facebook墙壁的RSS源,然后使用您选择的RSS阅读器进行解析。

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

Here is a quick way to get your ID

答案 3 :(得分:0)

所以要混淆Okky和Deele的答案,这两个都可以帮助我,你必须以看起来像这样的东西结束。我还添加了一个锚标记来链接到帖子网址:

<?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
        }
    }   
}
?>