0

ユーザーの個人的なストリームを取り込む方法についてサポートが必要です。たとえば、このWebページにアクセスするときに、ユーザーがFacebookWebサイトを見ているかのように自分のFacebookライブプロファイルストリームを表示できるようにします。

また、JavascriptまたはPHP SDKの使用をお勧めしますか?

ヘルプや例へのリンクをいただければ幸いです。

4

2 に答える 2

1

ユーザーのストリームを取得するには、アプリにこのデータを取得するための権限が必要です

ユーザーがアプリにログインすると、アプリは自分の公開プロフィールと友達リストにアクセスできます。ユーザーに関する詳細情報を読むには、アプリはユーザーに追加の権限をリクエストする必要があります

アクセス許可を使用すると、ユーザー情報にアクセスできます。Graph APIリファレンスは、ユーザープロファイルに保存されている情報の種類と、アプリがアクセスする前にユーザーが付与する必要のある特定の権限に関する詳細情報を提供します。

http://developers.facebook.com/docs/concepts/login/permissions-login-dialog/

許可を得るには、アクセストークンが必要です

アクセストークンは、FacebookAPIへの一時的で安全なアクセスを提供するランダムな文字列です。

トークンは、ユーザー、アプリ、またはページセッションを識別し、付与された権限に関する情報を提供します。また、トークンの有効期限と、トークンを生成したアプリに関する情報も含まれています。プライバシーチェックのため、FacebookでのAPI呼び出しの大部分はアクセストークンで署名する必要があります

ユーザープロファイルの場合、ユーザーアクセストークンが必要です

ユーザーアクセストークンは、API呼び出しの標準タイプです。これらは、ユーザーがアプリに権限を付与したときにログインフローで生成されます。

HTTP GETこれらの基本がわかったら、を介してデータをプルする必要があります

https://graph.facebook.com/me/feed?access_token=USER_ACCESS_TOKEN

これは、最後の25件の投稿(最大)を含むPostオブジェクトの配列を返します。

http://developers.facebook.com/docs/reference/api/user/#feed

これで、次のようなJSON応答が得られます

{
  "data": [
    {
      "id": "13608786_10101118139895617", 
      "from": {
        "name": "Philippe Harewood", 
        "id": "13608786"
      }, 
      "picture": "https://fbexternal-a.akamaihd.net/safe_image.php?d=AQDuPlCx0L1BP7wp&w=130&h=130&url=http%3A%2F%2Fi4.ytimg.com%2Fvi%2F7_3hKVxOcRI%2Fmqdefault.jpg", 
      "link": "http://www.youtube.com/watch?v=7_3hKVxOcRI", 
      "source": "http://www.youtube.com/v/7_3hKVxOcRI?version=3&autohide=1&autoplay=1", 
      "name": "Suit & Tie (Acoustic Cover) - Tori Kelly", 
      "description": "hope you enjoy my cover of Suit & Tieeee. JT is the man. for all info and tickets to my upcoming shows go to torikellymusic.com !! love you guys! -----------...", 
      "icon": "https://fbstatic-a.akamaihd.net/rsrc.php/v2/yj/r/v2OnaTyTQZE.gif", 
      "privacy": {
        "value": ""
      }, 
      "type": "video", 
      "application": {
        "name": "YouTube", 
        "namespace": "yt-fb-app", 
        "id": "87741124305"
      }, 
      "created_time": "2013-03-23T23:21:50+0000", 
      "updated_time": "2013-03-23T23:21:50+0000", 
      "comments": {
        "count": 0
      }
    }
  ], 
  "paging": {
    "previous": "https://graph.facebook.com/13608786/feed?limit=25&since=1364080910", 
    "next": "https://graph.facebook.com/13608786/feed?limit=25&until=1364080909"
  }
}

アプリの言語に基づいて、応答を正しく解析できるはずです。この場合、ユーザープロファイルからのフィードデータのほぼ永続的なストリームがあります。アプリがいつでもアクセスをリクエストできるように、ユーザーアクセストークンを保存する必要があります。

通常、ユーザーアクセストークンは2時間しか持続しないため、トークンを2か月間延長するのが賢明な選択です。次の呼び出しを使用してトークンを拡張できます

https://graph.facebook.com/oauth/access_token?  
    grant_type=fb_exchange_token&           
    client_id=APP_ID&
    client_secret=APP_SECRET&
    fb_exchange_token=SHORT_LIVED_ACCESS_TOKEN

このトークンは、fb_exchange_tokenのgrant_typeパラメーターを使用してサーバーから/ oauthエンドポイントに渡すことで(シークレットが公開されないように)、より寿命の長いトークン(最大60日間有効)と交換できます。

これをデータベースに保存する必要があります。たとえば、後で取得できるようにMySQLを使用します。

要約すると、SQLをロードします

CREATE TABLE IF NOT EXISTS `facebook_data` (
  `ID` int(11) NOT NULL,
  `access_token` varchar(255) NOT NULL,
  UNIQUE KEY `ID` (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

必要に応じてデータを事前入力します

INSERT INTO `facebook_data` (`ID`, `access_token`) VALUES
(1, 'temptoken');

通常、私はJS SDKがユーザー認証を処理し、PHPSDKがAPI呼び出しを処理することを許可する傾向があります。同時に、JSSDKによって設定されたCookieをPHPSDKが取得できるようにします

ハイブリッドフロー

PHP SDKがCookieでセットアップされ、署名されたリクエストを解析したら

アクセストークンを拡張し、データベースに新しいアクセストークンを設定します。

$facebook->setExtendedAccessToken();
$fbdb_result = $fbdb->query("UPDATE facebook_data SET access_token='" . $facebook->getAccessToken() . "' WHERE ID = 1");

プレゼンテーションページで、必要なときにデータベースからアクセストークンを取得し、PHPSDKを正しいユーザーに設定します。

$result = $fbdb->query("SELECT access_token FROM facebook_data WHERE ID = 1");
$access_token = mysql_result($result, 0);
$facebook->setAccessToken($access_token);

次に、最後に保存してから無効化が発生していないことを確認します

// Get User ID
$user = $facebook->getUser();
    
if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
  $user_posts = $facebook->api('me/feed'); // The user's feed on their wall
}

次に、各投稿の処理を開始し、スタイル付きのCSSで表示します

foreach($user_posts['data'] as $post){
  $post_link = $post['actions'][0]['link'];
  $page_id = $post['from']['id'];
  $page_name = $post['from']['name'];
  $message = ($post['message']) ? $post['message'] : " ";
  $name = ($post['name']) ? $post['name'] : " ";
  $story = ($post['story']) ? $post['story'] : " ";
  $post_time = $post['updated_time'];
}
于 2013-03-24T19:35:40.377 に答える
0

サイトのバッジ(FBプロファイルの右上にある歯車)を作成し、[バッジの編集]をクリックできます。利用可能なオプションはかなりあります。

于 2013-03-24T14:25:06.497 に答える