認証

グラフAPIとマーケティングAPIでは、いずれも各API呼び出しのパラメーターとしてアクセストークンを渡すことが必要です。このガイドでは、テスト用にアクセストークンを取得する方法について説明します。

認証の詳細については、メインドキュメントMetaのテクノロジーのアクセストークンをご覧ください。

このドキュメントでは、以下の内容が扱われています。

グラフAPIエクスプローラ

グラフAPIエクスプローラを使用してテストユーザーアクセストークンを取得できます。エクスプローラの使い方については、グラフAPIエクスプローラガイドをご覧ください。

ユーザーアクセストークンを取得する

  1. グラフAPIエクスプローラを開きます。
  2. Facebookアプリで、アクセストークンの取得に使用するアプリを選択します。
  3. [ユーザーまたはページ]で、[ユーザートークン]を選択します。
  4. [許可]の下で、ads_readにチェックマークを付けてください。
  5. [アクセストークンを生成]をクリックします。ボタンの上にあるボックスに、アクセストークンが表示されます。
  6. 後で使うために、そのトークンを保存します。

デバッグ

今生成したトークンの詳細情報を得るには、トークンの前に表示されている[i]ボタンをクリックしてください。クリックすると、ポップアップ画面が開き、トークンに関する基本情報が表示されます。アクセストークンツールで[開く]をクリックすると、アクセストークンデバッガーにリダイレクトされます。

アクセストークンデバッガーに直接アクセスし、生成したトークンをテキストボックスに貼り付けることもできます。

デバッグ中、次のものを確認してください。

  • アプリID: 前提条件セクションに表示されるアプリID。
  • 有効期限: タイムスタンプ。短期トークンは1時間~2時間後に期限が切れます
  • スコープ: グラフAPIエクスプローラに追加されたアクセス許可が含まれています。

アクセストークンを延長する

  1. グラフAPIエクスプローラを使用してアクセストークンを取得するためのすべてのステップを完了してください。
  2. トークンをコピーします。コピーしたトークンをアクセストークンデバッガーのテキストボックスに貼り付けてください。
  3. アクセストークンデバッガーで、ページの下までスクロールします。
  4. 長期トークンを取得するには、[アクセストークンを延長]をクリックします。後で使うために、そのトークンをコピーします。

アクセストークンデバッガーを使って新しいトークンのプロパティを確認してください。60日または無期限などの、長い有効期限になっているはずです。長期アクセストークンをご覧ください。

システムユーザーアクセストークンを使用する

システムユーザーアクセストークンは、システムユーザーアカウントに関連付けられているアクセストークンのタイプです。システムユーザーアカウントは、アセットを管理したりマーケティングAPIの呼び出しを行ったりするために、ビジネスマネージャで作成されるアカウントです。システムユーザーアクセストークンは、認証するユーザーがいない、サーバー間のインタラクションに便利です。このトークンを使用して事業者の代わりにアクションを実行できます。例えば、ビジネスデータの読み取りと書き込み、広告キャンペーンやその他の広告オブジェクトの管理などです。

システムユーザーアクセストークンを使用する利点の一つは、期限が切れないことです。それで、グラフAPIへのアクセスが必要な長期実行スクリプトやサービスで使用することができます。さらに、システムユーザーアカウントは特定の個人に紐づいていないため、Facebook上の個人活動とビジネス活動を、一定レベルで分けることができます。

システムユーザートークンには、長期ユーザーアクセストークンに比べ、他の理由で無効化される対象となりにくい特徴もあります。

手動によるトークンの取得

アクセス許可の延長を求めるプロンプトが出たときにユーザーが[許可する]ボタンをクリックすると、ユーザーはredirect_uriパラメーターの値と認証コードを含む次のようなURLにリダイレクトされます。

http://YOUR_URL?code=<AUTHORIZATION_CODE>

トークンを取得するためのエンドポイント、アプリID、サイトURL、app secret、受け取った認証コードを含めたURLを作成します。URLは次のようなものになります。

https://graph.facebook.com/<API_VERSION>/oauth/access_token?
  client_id=<YOUR_APP_ID>
  &redirect_uri=<YOUR_URL>
  &client_secret=<YOUR_APP_SECRET>
  &code=<AUTHORIZATION_CODE>

応答には、そのユーザーのアクセストークンが含まれます。

  • サーバーサイド認証フローに従うと、永続トークンを取得します。
  • クライアントサイド認証フローに従うと、有効期間が1~2時間程度の一時的なトークンを取得します。トークンを延長するためのグラフAPIエンドポイントを呼び出すと、このトークンを永続トークンに交換できます。

事業者のシステムユーザーによりAPIが起動される場合は、システムユーザーアクセストークンを使用できます。

アクセストークンのデバッグ、期限切れチェック、付与されたアクセス許可の検証は、アクセストークンデバッガーまたはプログラムで検証APIを使って実行できます。

トークンの保存

トークンは、以後のAPI呼び出しで使えるよう、データベースに安全に保管しておく必要があります。クライアントとサーバー間でトークンを移動する場合は、利用者のアカウントのセキュリティを確保するために、HTTPSを介して安全に実行する必要があります。クライアントとサーバー間のトークンの移動についての関連事項を確認してください

トークンの有効性は定期的にチェックし、必要な場合は、アクセス許可を求めるプロンプトをユーザーに表示してください。永続トークンも、以下のような理由により、場合によっては無効になることがあります。

  • ユーザーのパスワードが変更された
  • ユーザーがアクセス許可を取り消した

ユーザーアクセストークンが無効になる可能性や取り消される可能性は常にあるので、アプリでは、再度アクセス許可をユーザーに求めるフローの実行を想定しておいてください。ユーザーがウェブアプリを起動するときに、そのユーザーのトークンが有効かどうかを検証してください。必要であれば、認証フローに沿ってそれらを送信し、最新のトークンを取得するようにしてください。

アプリでそのような処理を実行できない場合、別の方法でユーザーに許可を求めることが必要かもしれません。API呼び出しがユーザーインターフェイスによって直接トリガーされない場合や、周期的に実行されるスクリプトで呼び出しが行われる場合が含まれます。可能な解決策は、手順について説明するメールをユーザーに送信することです。