久しぶりにFacebook APIの話

facebook APIを利用したアプリの作成は最近でも需要が多いなと感じます。
ですが、公式の資料は英語だし、欲しい情報が手に入りにくかったりもするんですよね。
なので、知っている範囲でどんどん情報を書いていきたいなと。続けられるかどうかはわかりませんが…笑

今までのFacebook APIの使い方の記事は↓こちらから。
PHPでFacebookアプリ作ってみた(1)
PHPでFacebookアプリ作ってみた(2)

おさらいです。

Facebook APIでログイン

まずログイン方法は下記の通り。

<?php
//Facebook SDKの読み込み
require_once('src/facebook.php');
//Facebookアプリ情報(書き換える)
//YOUR_APP_ID : Facebook Developerページで取得したApp ID 
//YOUR_APP_SECRET : Facebook Developerページで取得したApp Secret 
$config = array(
	'appId' =--> 'YOUR_APP_ID',
	'secret' => 'YOUR_APP_SECRET',
);
$facebook = new Facebook($config);
//facebookのユーザーID取得(ログイン判定)
$user_id = $facebook->getUser();
//ログインしていない場合
if(!$user_id) {
	$params = array(
	  'scope' => array('publish_stream', 'read_friendlists'), //取得する権限(この場合「投稿」と「友達リストの取得」)
	  'redirect_uri' => 'https://www.myapp.com/post_login_page' //ログイン後の帰ってくるページ
	);
	$loginUrl = $facebook->getLoginUrl($params);
	//ログインページへリダイレクト
	header('Location: ' .$loginUrl);
}else{
	echo "ログイン完了!";
}
?>

ユーザー情報の取得サンプル

実際にログインを使ってユーザー情報を取得するサンプルはこのようになります。
※ユーザー情報のみアクセスする場合は権限取得はいりません。

<?php
//Facebook SDKの読み込み
require_once('src/facebook.php');
//Facebookアプリ情報(書き換える)
//YOUR_APP_ID : Facebook Developerページで取得したApp ID 
//YOUR_APP_SECRET : Facebook Developerページで取得したApp Secret 
$config = array(
	'appId' =--> 'YOUR_APP_ID',
	'secret' => 'YOUR_APP_SECRET',
);
$facebook = new Facebook($config);
//facebookのユーザーID取得(ログイン判定)
$user_id = $facebook->getUser();
if($user_id) {
	try {
		//ユーザー情報を取得
		$my_profile = $facebook->api('/me');
		//ユーザーの名前を表示
		echo "ようこそ!" . $my_profile['name'] ."さん!";
	} catch(FacebookApiException $e) {
		//エラー時メッセージの表示
		echo $e->getMessage();
		//エラーログ出力
		error_log($e->getType());
		error_log($e->getMessage());
	}
} else {
	//ログインしていない場合(ログインしてね。の表示)
	$login_url = $facebook->getLoginUrl();
	echo '<a href="' . $login_url . '">ログイン</a>してね。';
}
?>

自分の情報の取得

自分の情報を取得するためには、ログインをしてから下記のリスエストを送ります。
上のサンプルでも行っているので、わかるかと思いますが、その部分だけ切り出すとこうなります。

<?php
$my_profile = $facebook->api('/me');
//内容を確認する場合↓
//print_r($my_profile);
?>

ログイン時のPermissionは必要ありません。

より細かい情報を取得する

フィールドを指定して取得する場合はfieldsに取得したい値を渡します。
日本語で名前を取得するにはlocaleにja_JPを渡します。(※日本語名が登録されている場合)

<?php
$my_profile = $facebook->api('/me',
	array(
	'locale' => 'ja_JP',
	'fields' => array(
		'id',
		'name',
		'first_name',
		'last_name',
		'link',
		'username',
		'gender',
		'locale',
		'age_range'
	),
));
?>

友達の取得

友だちの取得は下記の方法で行います。
通常、Permissionは必要ありませんが、友達リストの取得には別途Permissionが必要です。

<?php
$friends_list = $facebook->api('/me/friends');
//内容を確認する場合↓
//print_r($friends_list);
?>

アクセストークンの取得方法

アクセストークンという一時的な権限を取得することでより多くのデータにアクセスできるようになります。

<?php
$access_token = $facebook->getAccessToken();
//取得したアクセストークンはパラメータで渡して使用する。
$user_profile = $facebook->api('/me', array(
	'locale' => 'ja_JP',
	'access_token' => $access_token
));
?>

とまあ、ちらかりましたが、基本的な部分を押さえておけばどうにでもなるんじゃないかなとか思ってます。
続きます。。。(予定)

    • Len
    • 2014 08/20 1:31pm

    The next time I learn a weblog, I hope that it doesnt disappoint me as a lot as this one. I mean, I do know it was my option to learn, but I really thought youd have one thing interesting to say. All I hear is a bunch of whining about one thing that you could fix if you werent too busy in search of attention.

  1. トラックバック 0

return top