テストユーザはアプリケーションに紐づいたユーザアカウントで、アプリケーションの機能をテストするのに使います。手動もしくは自動化されたテストに用いてください。
login_urlを使って、直接テストユーザのアカウントにログインすることが可能です。login_urlは1時間で無効になりますが、簡単にリフレッシュして同一アカウントの新しいlogin_urlを得ることができます。テストユーザ用のaccess_tokenも提供していますので、テストユーザの代理としてAPIを利用することもできます。
1個のアプリケーションのテスト用に作成できるテストユーザは500個までです。今のところ、下記で説明しているAPIを用いてのみテストユーザの作成/管理をできますが、近い将来、Developerアプリケーションを通じて作成できるようにします。
Creating
アクセストークンとGraph APIを使うことで任意のアプリケーションに紐づいたテストユーザを作成することが可能です。
API
https://graph.facebook.com/APP_ID/accounts/test-users? installed=true &name=FULL_NAME &permissions=read_stream &method=post &access_token=APP_ACCESS_TOKEN
Parameters:
テストユーザがアプリケーションをインストール済みか否かや、テストユーザがアプリケーションに許可したパーミッションなどを、作成時に設定することができます。
installed
: アプリケーションがテストユーザにインストールされた状態にするかの真偽値です。
name
: オプションのパラメータで、テストユーザの名前を指定できます。指定した名前はテストユーザのemailアドレスにも利用されます。
permissions
: カンマ区切りの追加パーミッションです。installedにtrueが指定されている場合に、テストユーザがそれらパーミッションをアプリケーションに対して許可した状態で作成されます。
Response :
{ "id": "1234...", "access_token":"1234567..." , "login_url":"https://www.facebook.com/platform/test_account..." "email": "example...@tfbnw.net", "password": "1234..." }
id
: テストユーザのID
access_token
: このアクセストークンを用いて、テストユーザの代理としてAPIを利用することができます。テストユーザがアプリケーションをインストールしている場合にのみ利用可能です。
このURLへアクセスすることにより、このユーザとしてログインすることができます。テストアカウントのセキュリティ上の観点から、このURLは最初のログイン、もしくは1時間後に無効になります。ゲットメソッドで再度リクエストを送ることで、再度login_urlを取得することが可能です。
email
: 手動でログインする場合(つまり、login_urlを使わない場合)、ユーザのemailアドレスとして利用します。
password
: 手動でログインする場合(つまり、login_urlを使わない場合)、ユーザのパスワードとして利用します。このパスワードは作成時にのみ渡されますので、どこかに保存しておいてください。Facebook自身はパスワードを保存せず、ハッシュ値のみ保持しているためです。こちらを参照してパスワードの変更/リセット方法を確認してください。
Error Codes:
単一のアプリケーションに対して作成できるユーザ数の上限に達すると、以下のエラーが返されます。
Error code: 2900 (Too many test accounts)
Adding existing test users to other apps
Graph APIを用いて、既存のテストユーザを他アプリケーションに追加することができます。
https://graph.facebook.com/APP_ID/accounts/test-users? installed=true &permissions=read_stream &uid=TEST_USER_ID &owner_access_token=APP_ACCESS_TOKEN &method=post
Parameters:
uid
: 既存のテストユーザのID
owner_access_token
: そのテストユーザを作成するときに利用したアクセストークン
Accessing
アプリケーションのアクセストークンを用いてGraph APIへGETリクエストを送ることにより、アプリケーションに紐づいたテストユーザにアクセスできます。
API
https://graph.facebook.com/APP_ID/accounts/test-users? access_token=APP_ACCESS_TOKEN
Response:
{ "data" [ { "id": "1231....", "access_token":"1223134..." , "login_url":"https://www.facebook.com/platform/test_account.." } { "id": "1231....", "access_token":"1223134..." , "login_url":"https://www.facebook.com/platform/test_account.." } ] }
id
: テストユーザのID
access_token
: テストユーザの代理でAPIを利用するときに、このアクセストークンを使うことができます。テストユーザがアプリケーションをインストールしている場合にのみ利用可能です。
login_url
: このURLへアクセスすることにより、テストユーザとしてログインできます。最初の利用、もしくは10分後に無効になります。
Making friend connections
APIを使って、同じアプリケーションに紐づくテストユーザ同士の友達関係を作ることも可能です。友達申請/友達承認のAPIが用意されています。これにより、個々のテストユーザでログインすることなく、APIのみを用いて複数のテストユーザ間で友達関係を構築することが可能となります。
API
https://graph.facebook.com/TEST_USER_1_ID/friends/TEST_USER_2_ID? method=post https://graph.facebook.com/TEST_USER_2_ID/friends/TEST_USER_1_ID? method=post
- 一個目のサンプルはTEST_USER_1_IDのアクセストークンを利用してください。TEST_USER_1_IDからTEST_USER_2_IDへの友達申請が生成されます。
- 二個目のサンプルはTEST_USER_2_IDのアクセストークンを用います。この段階で友達承認され、登録が完了します。
Response: 成功すればsuccessを返し、それ以外ではfalseを返します。
Changing a test user's password and name
テストユーザのIDとpasswordパラメータをPOST送信することでテストユーザのパスワードを変更できます。API
https://graph.facebook.com/TEST_USER_ID? password=NEW_PASSWORD &name=NEW_NAME &method=post &access_token=APP_ACCESS_TOKEN
Parameters:
passwordとnameはオプションです。既存テストユーザのnameとpassword両方、もしくは片方を変更するのに利用できます。
Response: 成功すればsuccessを返し、それ以外ではfalseを返します。
Deleting
Graph上に存在する他のオブジェクトと同じ方法で、既存のテストユーザを削除することができます。
API
https://graph.facebook.com/TEST_USER_ID? method=delete &access_token=TEST_USER_ACCESS_TOKEN (OR) APP_ACCESS_TOKEN
Response: 成功すればsuccessを返し、それ以外ではfalseを返します。
Error Codes:
API_EC_TEST_ACCOUNTS_CANT_DELETE (2903)
: テストユーザが複数のアプリケーションと紐づいている
API_EC_TEST_ACCOUNTS_CANT_REMOVE_APP (2902)
: テストユーザは最低一つのアプリケーションと紐づいていなくてはならない
API_EC_TEST_ACCOUNTS_INVALID_ID (2901)
: 指定してテストユーザはこのアプリケーションと紐づいていない
Limitations
テストユーザはFacebookのスパム対策や偽アカウント削除の対象とはなりませんので、アカウントが停止される心配無しに自分のアプリケーションをテストできます。
また、色々なケースをテストする結果としてスパム行為に発展してしまうのを防ぐ為に、テストユーザの行動には下記の通り制限があります。
- テストユーザはテストユーザとのみ接することが可能です。
- テストユーザは、パブリックなページのファンになったり、それらのページに対してウォール投稿するなどできません。
- 紐づいたアプリケーションの開発者であれば誰でもアクセスし、利用することができます。
- 紐づいたアプリケーションへのテスト権限しか持ちません。live/sandboxモードのアプリケーションを使うことはできますが、設定変更したり対象アプリケーションのInsightsを見ることはできません
- テストユーザは常にテストユーザですので、通常のアカウントへ変換することなどはできません