このガイドは、Facebookソーシャルグラフからデータを受け取る方法を説明したスタートガイドです。
以下が必要です。
グラフAPIエクスプローラーを新しいブラウザーウィンドウで開きます。これにより、このチュートリアルを読みながらサンプルを実行することができます。
エクスプローラーには、GET
メソッドによるデフォルトのクエリ、グラフAPIの最新バージョン、/me
ノード、クエリ文字列フィールドの中のid
フィールドとname
フィールド、使用するFacebookアプリが読み込まれます。
[アクセストークンの生成]ボタンをクリックします。[Facebookログイン]ウィンドウがポップアップ表示されます。このポップアップは、あなたの名前とプロフィール写真をFacebookから取得するためのアクセス許可を求めるアプリです。
このフローは、ユーザーが自分の認証情報を使ってアプリにログインするためのFacebookログイン製品です。Facebookログインを利用することにより、アプリはユーザーのFacebookデータへのアクセス許可を求め、その人はアクセスを承認するかどうかを指定できます。あなたの名前とプロフィール写真は公開されていて、Facebook上で見つけることができるようになっています。それで、このリクエストを実行するのに追加の要件はありません。 [...として続行]をクリックします ユーザーアクセストークンが作成されます。このトークンには、リクエスト元のアプリ、そのアプリを使ってリクエストする人、アクセストークンがまだ有効かどうか(有効期限は約1時間)、有効期限の時刻、アプリがリクエストできるデータの範囲などの情報が含まれます。このリクエストにおいて範囲は |
アクセストークンの横にある丸い情報アイコンをクリックすると、トークンの情報が表示されます。 |
右上隅にある[送信]ボタンをクリックします。
応答ウィンドウに、FacebookユーザーIDと名前が入ったJSON応答が表示されます。
クエリ文字列フィールドから?fields=id,name
を削除した後に[送信]をクリックしても、表示結果は同じです。name
とid
はデフォルトで返されるユーザーノードフィールドだからです。
最初のリクエストをもう少し複雑にして、もう1つフィールドemail
を追加することにします。フィールドを追加するには、2通りの方法があります。
email
フィールドを追加して、[送信]をクリックします。
呼び出しが失敗しない限り、返されるのは、name
とid
のフィールドとデバッグメッセージだけです。[(Show)]リンクをクリックしてリクエストをデバッグします。
ほとんどすべてのノードとフィールドにアクセスするには、特定のアクセス許可が必要です。デバッグメッセージによると、Facebookアカウントに関連付けられているメールアドレスにアクセスするためのアクセス許可をアプリに付与する必要があります。
右側パネルの[アクセス許可]の下で、[アクセス許可を追加]ドロップダウンメニューをクリックします。[ユーザーデータアクセス許可]をクリックし、[メール]を選びます。 新しいユーザーアクセストークンを生成するアクセストークンの範囲を変更しようとしてるため、新しく作成する必要があります。[アクセストークンを生成]をクリックします。最初のリクエストと同じように、Facebookログインダイアログでメールにアクセスするためのアクセス許可をアプリに付与する必要があります。 新しいトークンが作成されたら、[送信]をクリックします。リクエストに含まれるすべてのフィールドが返されます。 |
自分のFacebook投稿を取得してみましょう。
応答ウィンドウで返されるid
値はリンクであることに注意してください。これらのリンクで、ユーザー、ページ、投稿などのノードを表せます。リンクをクリックすると、IDにより、クエリ文字列フィールドの内容が置き換えられます。これで、そのノードに対するリクエストを実行できるようになります。このノードは親ノードであるユーザーの投稿に接続されているため、アクセス許可の追加は不要です。ここで投稿IDをクリックします。次のサンプルでそれを使用することになります。
注: IDによっては、親IDと新しいID文字列の組み合わせになっているものがあります。例えば、ユーザーの投稿の投稿IDは1028223264288_102224043055529
のようになります(1028223264288
はユーザーID)。
ユーザーノードの中で、データを返すことのできるエッジの数は多くありません。ユーザーオブジェクトへのアクセス許可を付与できるのは、そのオブジェクトを所有するユーザーだけです。ほとんどの場合、オブジェクトを作成したユーザーがその所有者です。
例えば、投稿を公開した人は、その作成日時、テキスト、写真、その投稿の中で共有されているリンクなどの情報、またその投稿の受信したリアクションの数を見ることができます。自分の投稿にコメントした場合はそのコメントにアクセスできますが、自分の投稿に別の人がコメントを公開した場合、そのコメントもそれを公開した人も見ることができません。
投稿のうちの1つについて、リアクションの数を調べてみます。参考として
オブジェクトに対するリアクションのリファレンスをご覧ください。
エクスプローラーツールにより、リクエストをテストすることができます。成功の応答があった場合は、コードをアプリコードの中に挿入することができます。応答ウィンドウの下部にある[コードを取得]をクリックします。エクスプローラーでは、Android、iOS、JavaScript、PHP、cURLのコードが提供されます。コードが事前に選択されているため、コピーしてペーストするだけです。
自分のアプリ用のFacebook SDKを実装することをおすすめします。このSDKには、アプリがアクセス許可を求めたりアクセストークンを取得したりするFacebookログインが含まれます。
グラフAPIエクスプローラーを使って、ユーザー、ページ、グループなど、あらゆるリクエストをテストできます。必要なアクセス許可とアクセストークンのタイプについて調べるには、各ノードやエッジのリファレンスをご覧ください。