グラフAPIとマーケティングAPIでは、いずれも各API呼び出しのパラメーターとしてアクセストークンを渡すことが必要です。このガイドでは、テスト用にアクセストークンを取得する方法について説明します。
認証の詳細については、メインドキュメントMetaのテクノロジーのアクセストークンをご覧ください。
このドキュメントでは、以下の内容が扱われています。
グラフAPIエクスプローラを使用してテストユーザーアクセストークンを取得できます。エクスプローラの使い方については、グラフAPIエクスプローラガイドをご覧ください。
ads_read
にチェックマークを付けてください。今生成したトークンの詳細情報を得るには、トークンの前に表示されている[i]ボタンをクリックしてください。クリックすると、ポップアップ画面が開き、トークンに関する基本情報が表示されます。アクセストークンツールで[開く]をクリックすると、アクセストークンデバッガーにリダイレクトされます。
アクセストークンデバッガーに直接アクセスし、生成したトークンをテキストボックスに貼り付けることもできます。
デバッグ中、次のものを確認してください。
アクセストークンデバッガーを使って新しいトークンのプロパティを確認してください。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>
応答には、そのユーザーのアクセストークンが含まれます。
事業者のシステムユーザーによりAPIが起動される場合は、システムユーザーアクセストークンを使用できます。
アクセストークンのデバッグ、期限切れチェック、付与されたアクセス許可の検証は、アクセストークンデバッガーまたはプログラムで検証APIを使って実行できます。
トークンは、以後のAPI呼び出しで使えるよう、データベースに安全に保管しておく必要があります。クライアントとサーバー間でトークンを移動する場合は、利用者のアカウントのセキュリティを確保するために、HTTPSを介して安全に実行する必要があります。クライアントとサーバー間のトークンの移動についての関連事項を確認してください。
トークンの有効性は定期的にチェックし、必要な場合は、アクセス許可を求めるプロンプトをユーザーに表示してください。永続トークンも、以下のような理由により、場合によっては無効になることがあります。
ユーザーアクセストークンが無効になる可能性や取り消される可能性は常にあるので、アプリでは、再度アクセス許可をユーザーに求めるフローの実行を想定しておいてください。ユーザーがウェブアプリを起動するときに、そのユーザーのトークンが有効かどうかを検証してください。必要であれば、認証フローに沿ってそれらを送信し、最新のトークンを取得するようにしてください。
アプリでそのような処理を実行できない場合、別の方法でユーザーに許可を求めることが必要かもしれません。API呼び出しがユーザーインターフェイスによって直接トリガーされない場合や、周期的に実行されるスクリプトで呼び出しが行われる場合が含まれます。可能な解決策は、手順について説明するメールをユーザーに送信することです。