ユーザーの個人的なストリームを取り込む方法についてサポートが必要です。たとえば、このWebページにアクセスするときに、ユーザーがFacebookWebサイトを見ているかのように自分のFacebookライブプロファイルストリームを表示できるようにします。
また、JavascriptまたはPHP SDKの使用をお勧めしますか?
ヘルプや例へのリンクをいただければ幸いです。
ユーザーのストリームを取得するには、アプリにこのデータを取得するための権限が必要です
ユーザーがアプリにログインすると、アプリは自分の公開プロフィールと友達リストにアクセスできます。ユーザーに関する詳細情報を読むには、アプリはユーザーに追加の権限をリクエストする必要があります
アクセス許可を使用すると、ユーザー情報にアクセスできます。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'];
}
サイトのバッジ(FBプロファイルの右上にある歯車)を作成し、[バッジの編集]をクリックできます。利用可能なオプションはかなりあります。