スタートガイド

このガイドは、Facebookソーシャルグラフからデータを受け取る方法を説明したスタートガイドです。

開始する前に

以下が必要です。

最初のリクエスト

ステップ1: グラフAPIエクスプローラーツールを開く

グラフAPIエクスプローラーを新しいブラウザーウィンドウで開きます。これにより、このチュートリアルを読みながらサンプルを実行することができます。

エクスプローラーには、GETメソッドによるデフォルトのクエリ、グラフAPIの最新バージョン、/meノード、クエリ文字列フィールドの中のidフィールドとnameフィールド、使用するFacebookアプリが読み込まれます。

ステップ2.アクセストークンを生成する

[アクセストークンの生成]ボタンをクリックします。[Facebookログイン]ウィンドウがポップアップ表示されます。このポップアップは、あなたの名前とプロフィール写真をFacebookから取得するためのアクセス許可を求めるアプリです。

このフローは、ユーザーが自分の認証情報を使ってアプリにログインするためのFacebookログイン製品です。Facebookログインを利用することにより、アプリはユーザーのFacebookデータへのアクセス許可を求め、その人はアクセスを承認するかどうかを指定できます。あなたの名前とプロフィール写真は公開されていて、Facebook上で見つけることができるようになっています。それで、このリクエストを実行するのに追加の要件はありません。

[...として続行]をクリックします

ユーザーアクセストークンが作成されます。このトークンには、リクエスト元のアプリ、そのアプリを使ってリクエストする人、アクセストークンがまだ有効かどうか(有効期限は約1時間)、有効期限の時刻、アプリがリクエストできるデータの範囲などの情報が含まれます。このリクエストにおいて範囲はpublic_profileであり、あなたの名前とプロフィール写真が含まれます。

アクセストークンの横にある丸い情報アイコンをクリックすると、トークンの情報が表示されます。

ステップ3.リクエストを送信する

右上隅にある[送信]ボタンをクリックします。

表示される画面

応答ウィンドウに、FacebookユーザーIDと名前が入ったJSON応答が表示されます。

クエリ文字列フィールドから?fields=id,nameを削除した後に[送信]をクリックしても、表示結果は同じです。nameidはデフォルトで返されるユーザーノードフィールドだからです。

2番目のリクエスト

ステップ1.フィールドを追加する

最初のリクエストをもう少し複雑にして、もう1つフィールドemailを追加することにします。フィールドを追加するには、2通りの方法があります。

emailフィールドを追加して、[送信]をクリックします。

表示される画面

呼び出しが失敗しない限り、返されるのは、nameidのフィールドとデバッグメッセージだけです。[(Show)]リンクをクリックしてリクエストをデバッグします。

ほとんどすべてのノードとフィールドにアクセスするには、特定のアクセス許可が必要です。デバッグメッセージによると、Facebookアカウントに関連付けられているメールアドレスにアクセスするためのアクセス許可をアプリに付与する必要があります。

ステップ2.アクセス許可を追加する

右側パネルの[アクセス許可]の下で、[アクセス許可を追加]ドロップダウンメニューをクリックします。[ユーザーデータアクセス許可]をクリックし、[メール]を選びます。

新しいユーザーアクセストークンを生成する

アクセストークンの範囲を変更しようとしてるため、新しく作成する必要があります。[アクセストークンを生成]をクリックします。最初のリクエストと同じように、Facebookログインダイアログでメールにアクセスするためのアクセス許可をアプリに付与する必要があります。

新しいトークンが作成されたら、[送信]をクリックします。リクエストに含まれるすべてのフィールドが返されます。

自分のFacebook投稿を取得してみましょう。

その手順はこちら。

応答に含まれるリンク

応答ウィンドウで返されるid値はリンクであることに注意してください。これらのリンクで、ユーザー、ページ、投稿などのノードを表せます。リンクをクリックすると、IDにより、クエリ文字列フィールドの内容が置き換えられます。これで、そのノードに対するリクエストを実行できるようになります。このノードは親ノードであるユーザーの投稿に接続されているため、アクセス許可の追加は不要です。ここで投稿IDをクリックします。次のサンプルでそれを使用することになります。

注: IDによっては、親IDと新しいID文字列の組み合わせになっているものがあります。例えば、ユーザーの投稿の投稿IDは1028223264288_102224043055529のようになります(1028223264288はユーザーID)。

エッジを見てみる

ユーザーノードの中で、データを返すことのできるエッジの数は多くありません。ユーザーオブジェクトへのアクセス許可を付与できるのは、そのオブジェクトを所有するユーザーだけです。ほとんどの場合、オブジェクトを作成したユーザーがその所有者です。

例えば、投稿を公開した人は、その作成日時、テキスト、写真、その投稿の中で共有されているリンクなどの情報、またその投稿の受信したリアクションの数を見ることができます。自分の投稿にコメントした場合はそのコメントにアクセスできますが、自分の投稿に別の人がコメントを公開した場合、そのコメントもそれを公開した人も見ることができません。

投稿のうちの1つについて、リアクションの数を調べてみます。参考として

オブジェクトに対するリアクションのリファレンス

をご覧ください。

その手順はこちら。

リクエストのコードを取得する

エクスプローラーツールにより、リクエストをテストすることができます。成功の応答があった場合は、コードをアプリコードの中に挿入することができます。応答ウィンドウの下部にある[コードを取得]をクリックします。エクスプローラーでは、Android、iOS、JavaScript、PHP、cURLのコードが提供されます。コードが事前に選択されているため、コピーしてペーストするだけです。

自分のアプリ用のFacebook SDKを実装することをおすすめします。このSDKには、アプリがアクセス許可を求めたりアクセストークンを取得したりするFacebookログインが含まれます。

詳しくはこちら

グラフAPIエクスプローラーを使って、ユーザー、ページ、グループなど、あらゆるリクエストをテストできます。必要なアクセス許可とアクセストークンのタイプについて調べるには、各ノードやエッジのリファレンスをご覧ください。