More Related Content
Similar to PostgreSQL JSON型と Facebook APIを使ってwebアプリ開発をした話 (20)
PostgreSQL JSON型と Facebook APIを使ってwebアプリ開発をした話
- 2. 目次
• 自己紹介
• webアプリデモ
• Facebook APIとは?
• JSON型とは?
• JSON型を使うとどう変わる?
• PostgreSQL9.4新機能:JSONB型
• まとめ
- 5. 開発情報と利用した技術
○ミドルウェア
- Apache 2.2.25
- PHP 5.3.27
- PostgreSQL 9.3.4
○フレームワーク
- CakePHP 2.4.10
○フロントエンド
- HTML5 & CSS3
• Facebook API
• PostgreSQL JSON型
技術トピック
- 6. Facebook APIとは?
Facebook Graph API
• Facebookの様々なオブジェクトへアクセス可能
• ユーザ情報(名前、誕生日など)、写真、友達、投稿…
例えばブラウザでhttps://graph.facebook.com/4へアクセスすると…
{
"id": "4",
"first_name": "Mark",
"gender": "male",
"last_name": "Zuckerberg",
"link":
"https://www.facebook.com/zuck",
"locale": "en_US",
"name": "Mark Zuckerberg",
"username": "zuck"
}
Mark Zuckerbergのユーザ情報がJSONで返ってくる(HTTPの場合)
※ただし、アクセストークンなしで取得できるのは公開情報のみ
- 7. Facebook APIとは?
• 2014/4/30に2.0にバージョンアップ
• 友達に対するアクセス権限など変更箇所多数
• 様々なSDKが用意されている
(PHP,JavaScript,iOS,Android)
• アクセストークンの発行などがラク
• 今回使用したのはPHP SDK
- 8. Facebook APIとは?
☆使用例
※CakePHPのVendorフォルダにsdkを入れておく
//読み込み
App::import('Vendor', 'facebook/src/facebook');
//アプリの情報を設定
$this->facebook = new Facebook( array(
‘appId’ => ‘ここにid’, 'secret' => ‘ここにsecret’ ));
//スコープ(ほしいパーミッション)を指定してログインURLを取得
$login_url = $this->facebook->getLoginUrl(array('scope' => 'user_friends'));
//リダイレクト
$this->redirect($login_url);
//自分の情報を取得
$me = $this->facebook->api('/me');
//友達の情報を取得
$friend_list = $this->facebook->api('/me/taggable_friends');
※アプリのidやsecretはhttp://developers.facebook.com/にて設定
- 9. JSON型とは?
• JSON(JavaScript Object Notation)は軽量データ交換フォーマット
Ex) {"name": “Ayumi Ishii", "age": 20}
< PostgreSQL9.3のJSONサポート>
○JSON型
※エンコードはUTF-8にする
・列にJSON型を指定できる(text型に値のチェックがついている)
○JSON演算子
・SELECT ‘{“a”:1,“b”:2}’::json->‘b’ ; ⇒ 2を取得
・SELECT ‘{“a”:[1,2,3],“b”:[4,5,6]}’::json#>‘{a,2}’; ⇒3を取
得
○JSONサポート関数
・SELECT json_array_length('[1,2,3,{"f1":1,"f2":[5,6]},4]');
一番外側の要素の数⇒ 5を取得その他は公式ドキュメントにて
- 12. まとめ
• PostgreSQL JSON型とFacebook APIを使って
webアプリ開発
• JSON型の出番は多そう
• Ajaxで利用されている
• APIの戻り値がJSONのケースをよく見かける
• JSONBに期待が高まる