Facebookアプリのテストユーザーを利用してpublish_actions等を審査前に動作確認する

6.27
2014

testuser0

Facebookログインversion2.0への移行に伴い、アプリの書き込み権限など多くのパーミッションが要審査となった件は以前まとめましたが、今回は、この審査が完了する前にアプリの動作テストを行う方法です。
(既にご存知のお方もたくさんいると思いますが)

書き込み権限(publish_actions)の審査が通る前に動作確認したい

こちらの記事でまとめたとおり、Facebookアプリを通してユーザーのタイムラインにポストさせるためには、「publish_actions」という権限が必要ですが、そのパーミッションをアプリで使えるようにするためには、Facebookの審査を通す必要があります。

審査に出す際にはスクリーンショットの提出なども必要で、公式のdocsには「ユーザーのタイムラインやアクティビティでの表示」も確認するからスクリーンショットを提出しろ、と書かれているのですが、「書き込みのパーミッション使えないのにどうやってテストするのよ」と思ってました・・・。

Graph API Explorerを使えば、パーミッション不要でユーザー(ただし自分のみ)に権限を渡せる

今さら気づくなよ、って話かもしれませんが、今さら気づきました。

そもそも、

Facebookアプリからユーザーに対して、タイムラインに投稿するための許可(publish_actionsパーミッション)を求める
 ↓
ユーザーがパーミッションを承認すると、書き込み権限がFacebookアプリに渡される

という流れです。
審査を通さないといけないのは、アプリが全てのユーザーに対して該当の「許可」を要求できるようにするためです。
アプリの管理人であれば、実は自分に対してこの「許可」の要求がいつでもできます。

で、Facebook developerのツール、Graph API Explorerを使うと、ユーザー(自分のみです。)に対して強制的に任意の「許可」を承認した状態にすることが出来ます。

Graph API Explorer
https://developers.facebook.com/tools/explorer/145634995501895/

testuser1

Graph API Explorerを使って自分のアカウントに任意の権限を渡す方法

1.まずはじめに、Graph API Explorerのページ上部にある「Application」から任意のアプリを選択します。
当然ですが、自分が管理者になっているアプリしか表示されません。

testuser2

2.アプリを選択したら、「Get Access Token」をクリックしてアクセストークンを作成します。
なお、対象のアプリへのログインが初めてであれば、アクセストークンは作成されていませんので空です。(Access Token:の欄は空)
過去にログインしたことがある場合は、既にアクセストークンが作成されています。(Access Token:の欄に英数字の羅列がある)

testuser3

3.すると、以下の画面のように、全てのパーミッションの一覧が出てきます。この中から、好きなものにチェックを入れることで、そのパーミッションを許可した状態になります。
既にトークンが作成済みの場合、許可済みのパーミッションのチェックはグレーアウトされています。
書き込み権限などは、「Extended Permissions」をクリック。

testuser4

4.今回は、「publish_actions」にチェックを入れて先に進みます。

testuser5

5.すると、チェックを入れたパーミッションの承認を、通常のダイアログで行うことになります。
アプリにログインしたことが無い場合はまずアプリ自体へのログインを行い・・・。

testuser6

続いて、個別のパーミッションの承認を行います。

testuser7

6.これで完了です。正しく許可されていることを確認してみましょう。
Graph API Explorerで、アクセストークン(Access Token:欄の英数字の羅列)をコピーします。

testuser8

7.続いて、コピーしたアクセストークンを、デバッガーにかけてみます。

Debugger
https://developers.facebook.com/tools/debug/

testuser9

8.すると、アクセストークンの情報が表示されます。
この中のscopes、というところで、どのパーミッションが承認されているか確認できます。

testuser10

Open Graph Test User を使う方法

前述の方法では、自分のアカウントでのテストは可能になりますが、開発者が複数人いる場合は全員がこの手順を踏む必要があります。
それは面倒、という方にはこちら。アプリの「テストユーザー」を使う方法です。

アプリの管理画面、Roles > Test Users を見ると、「Open Graph Test User」というテストユーザーがいると思います。
このテストユーザー、実はアプリを作成すると自動的に生成されるのです。
そして、このユーザーは何と最初から「publish actions」を許可した状態になっています。
(残念ながら、「publish actions」のみで、それ以外の追加パーミッションは全て承認していません。)

★なお「Open Graph Test User」は、過去に作成したアプリには存在していません。
おそらくFacebook Login2.0の移行が開始されたタイミングよりも後に作成したアプリについてのみ存在しています。

testuser11

  • ・・・テストユーザーの名前とパスワードを編集できます
  • ・・・テストユーザーのアクセストークンが表示されます
  • ・・・テストユーザーのフレンドを管理できます
  • ・・・現在ログインしているアカウント(アプリの管理者である、あなたのメインアカウント)からログアウトして、テストユーザーでログインし直します

鍵のマークをクリックしてアクセストークンを表示し、前述の方法でパーミッションを確認してみてください。
scopesに「publish_actions」があると思います。

新規に作成したアプリはこのテストユーザーを使う方が簡単かもしれません。

なお、テストユーザーは任意に何人でも作成ができますが、デフォルトで「publish_actions」を承認しているのはこの「Open Graph Test User」のみです。
ご注意ください。