9

最新の Facebook ステータスの更新を取得するための、シンプルで優れた PHP 関数を探しています。誰か知っていますか?

ありがとう!

編集:以下に半分のソリューションを追加しました。

または、RSS フィードを読み込んで最新のステータス更新を吐き出す良い方法を知っている人はいますか?

4

10 に答える 10

6

PEARの簡単なチェックでServices_Facebookが見つかりました

于 2008-12-20T21:53:54.850 に答える
3

これは不完全な答えですが、これは私がこれまでに得たものです:

まず、FBに開発者アプリケーションを追加します。次に、新しいアプリケーションを作成します。好きなように呼んでください。

2番目:PHPクライアントをダウンロードします。 ウェブホストのどこかにダンプします。つまり、/ facebook /

3番目:次の初心者コードをコピーして、phpファイルを開始します。

 <?php
 require_once('facebook/php/facebook.php');
 $facebook = new Facebook("YOUR_API_KEY","YOUR_SECRET_KEY");
 $result = $facebook->api_client->fql_query("SELECT status FROM user WHERE uid = YOURIDNUMBER");
 // OR --- they both get the same data
 $result = $facebook->api_client->users_getInfo(YOURIDNUMBER,'status');
 print_r($result);
 echo "<pre>Debug:" . print_r($facebook,true) . "</pre>"; // debug info
 ?>

他の情報:

  • ログインして、アプリケーションを追加する必要があります。または、アプリケーションにoffline_access権限を付与し、アプリケーションを追加します。
  • 次のURLを入力してoffline_accessを追加できます:http://www.facebook.com/authorize.php?api_key = YOUR_API_KEY&v = 1.0&ext_perm = offset_access
  • ここにあるアクセス許可の詳細:http ://wiki.developers.facebook.com/index.php/Extended_permissions
  • 私は停止点にいます:私のプログラムがfqlクエリまたはusers_getInfoを呼び出すと、私のページはphpの実行を停止しますか?新しいアプリケーションの呼び出しは限られていると思いますか?私はFB開発を行ったことがないので、まったく新しいです。たぶん、APIへの過度の呼び出しを防ぐために、呼び出しを行い、最近のステータス(または最新のステータス)を自分のDBに保存しますか?

これが誰かが始めるのに役立つことを願っています!

編集:あなたがその人またはその友人でない限り、offline_accessがオンになっている場合でも、FBは誰かのステータスにアクセスできないようです(プライバシー設定によって異なります)。

しかし、私はついに新しいプロファイルバージョンでRSSフィードを見つけることができました:http://www.new.facebook.com/minifeed.php?filter = 11

于 2008-12-21T09:03:44.187 に答える
2

最新のステータスを取得したいだけなら、これは非常に単純な関数です。Facebook SDK などには依存しません。CURL と JSON のサポートが必要なだけです。

Facebookのステータスを取得するためのシンプルなPHP関数

于 2010-11-09T20:57:56.177 に答える
2

あなたの最新の Facebook ステータスを取得する方法を見つけました。これはあなたがそれを行う方法です:

1) Facebook アプリを作成し、アプリケーション シークレットとアプリケーション ID をコピーします。

2) アプリに read_stream と offline_access をプロファイルに付与します。( http://developers.facebook.com/docs/authentication/permissions ) 最新のステータスを取得するには、アプリに access_token が必要です。offline_access が付与されている場合、access_token は「決して」期限切れになることはありません。これを行う最も簡単な方法は、このコードによって生成されたボタンをクリックすることです: (必ず「アプリ ID」を入力し、Cookie を true に設定してください!)

<fb:login-button perms="read_stream,offline_access"></fb:login-button>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>FB.init({appId: 'your app id', status: true, cookie: true, xfbml: true});</script>

3) 次に、使用している access_token を調べます。access_token は fbs_appId Cookie に保存されます。ブラウザまたは を使用して検索します$_COOKIE['fbs_appId']。を探しaccess_token=...ます。

4) (できれば) 期限切れのない access_token を取得したので、次のコードを使用できます。

$access_token='xxxxxxxxxxxxxxxxxxxx';
$appId='123456789132456789';
$appSecret='xxxxxxxxxxxxxxxxxxxx';
$profileId='123456789';

//http://github.com/facebook/php-sdk/blob/master/src/facebook.php
require 'facebook.php';

$facebook = new Facebook(array('appId' => $appId,'secret' => $appSecret));
$response = $facebook->api('/'.$profileId.'/feed?limit=1&access_token='.$access_token);

5) メッセージ部分は次の場所にあります。$response['data'][0]['message']

アクセストークンの有効期限がわかりません。フェイスブックは次のように述べています。

アプリケーションがいつでもユーザーに代わって承認されたリクエストを実行できるようにします。デフォルトでは、アプリケーションがアクティブにアプリケーションを使用している場合にのみアプリケーションがユーザーに代わってリクエストを行うようにするために、ほとんどのアクセス トークンは短期間で失効します。このアクセス許可により、OAuth エンドポイントから返されたアクセス トークンの有効期間が長くなります。

于 2010-04-27T08:56:30.367 に答える
1

最速の方法として、PHPforFB フレームワーク ( www.phpforfb.com/en/ ) を使用するだけです。

コードは次のようになります。

require_once('phpforfb_framework.php');

$structInit = array('app_id' => APP_ID,'app_name' => APP_NAME,'sec_key' => APP_SECKEY);

$FacebookAPP = new PHPforFB($structInit);

if($FacebookAPP->lastErrorCode>0){
    //Creation failed => Display error message and exit
    echo "PHPforFB Error: ".$FacebookAPP->lastErrorCode." -> ".$FacebookAPP->lastError;
}else{
    //PHPforFB framework established

    if($FacebookAPP->userLoggedIn === TRUE){

        //If the user is logged in at Facebook:
        //Here you can determine if the user has at least once before
        //granted basic permissions to your application.
        if($FacebookAPP->userAuthenticated === FALSE){

            //The user has not yet granted permissions
            //**your code here**
        }else{
            //The user has already granted permissions, therefore his Facebook ID
            //is known to us. It is always available in $FacebookAPP->userID:

            $userID = $FacebookAPP->userID;
            //**your code here**
        }
    }
}
于 2012-02-20T19:10:59.600 に答える
1

私は PEAR とうまくやっていけるようには思えませんが、あなたが私より運が良ければ、長期的には PEAR ソリューションが最善の方法のように思えます。

もう 1 つのアイデアは、Facebook 開発者 APIライブラリを調べて、探しているものが得られるかどうかを確認することです。

最後に、以前は RSS フィードを取得する方法がありました...しかし、もう機能する手順が見つからないようですが、興味があれば Facebook のヘルプを探してみてください。私は最終的に次のようになります。

http://www.new.facebook.com/feeds/status.php?id=[idnumber]&viewer=[viewer]&key=[key]&format=rss20

于 2008-12-20T22:09:07.737 に答える
1

ここ数日間、たくさんのチュートリアルを試しましたが、どれもうまくいきませんでした。FacebookがAPI要件を変更したことが原因である可能性があると思います。これは、現時点で機能することがわかった唯一のものです。

http://www.deanblog.co.uk/article/13/adding-a-facebook-status-feed-to-your-website-with-php

于 2011-06-16T12:19:38.523 に答える
1

Jens の投稿を使用して、有効な access_token を取得しました。次に、次のコードを使用して、xml ファイルからステータス メッセージと投稿時刻を抽出しました ($limit を変更して、ステータス メッセージを多かれ少なかれ表示したり、フォームを使用して変更したりできます)。

Facebook ID と、作成したアプリから取得したアクセス トークンを入力してください ( Jens の投稿を参照)。このスクリプトの出力は、こちらで確認できます

楽しむ!

<?php
if(isset($_POST['limit'])) {
    $limit = $_POST['limit'];
}
else {
    $limit = 3; // number of status messages to display
}
$f = fopen ("https://api.facebook.com/method/status.get?uid=YOUR_FACEBOOK_ID&limit=".$limit."&access_token=YOUR_ACCESS_TOKEN", "r");

while ($line= htmlentities(fgets($f))) {
    if ($line===FALSE) print ("FALSE\n");
    else
    {
        $content = $content." ".$line;
    }
}
fclose ($f);

$message = explode("&lt;message&gt;", $content); // search for the <message> tag
$message_cnt = count($message);
$msg_index = 0;

$time = explode("&lt;time&gt;", $content); // search for the <time> tag

for($i=1; $i<$message_cnt; $i++)
{
    $tmp = explode("&lt;/message&gt", $message[$i]);
    $msg[$msg_index] = $tmp[0]; // status message

    $tmp2 = explode("&lt;/time&gt", $time[$i]);
    $t[$msg_index++] = $tmp2[0]; // time of posting
}

for($i=0; $i<$msg_index; $i++)
{
     echo("<span class=\"status\">".preg_replace('!\015\012|\015|\012!','<br>',$msg[$i])."</span><br>\n
           <span class=\"date\">on ".date("d.m.Y", $t[$i])." at ".date("H:i",$t[$i])."</span><br><br>\n");

}
?>
于 2010-09-01T21:02:18.000 に答える
0

API ルートを使用できなかったので、http: //www.new.facebook.com/minifeed.php?filter= 11 にある RSS を使用しました。

そして、StatusPress と呼ばれる次の PHP 関数を使用し、いくつかの独自の変更を加えて、Facebook ステータスの RSS フィードを解析しました。よく働く!

于 2009-01-04T19:35:07.887 に答える
0
<?php
// see http://github.com/facebook/php-sdk/blob/master/facebook.php
require './facebook.php';
// Create our Application instance.
// see http://www.youtube.com/watch?v=jYqx-RtmkeU for how to get these numbers
$facebook = new Facebook(array('appId' => 'XXX','secret' => 'XXX'));
// This call will always work since we are fetching public data.
// this could be /username or /username/friends etc...
// see developer api for FQL for examples
$status = $facebook->api('/haanmc/feed?limit=1');
?>
<p><?php print $status['data'][0]['message']; ?></p>
<p>Likes: <?php print $status['data'][0]['likes']; ?> | Comments: <?php print count($status['data'][0]['comments']['data']); ?></p>
<textarea style="width: 95%; height: 600px;"><?php print_r($status); ?></textarea>
于 2010-04-23T15:29:15.700 に答える