manage_pages・publish_actions・publish_pagesの申請~Facebook API(2.3)でウォールに投稿するまでの手順

Facebook APIの各権限の利用には申請が必要で、その申請も大変面倒です。
まめわざでブログやページの作成した際に、これをFacebook・Twitterに投稿する機能を提供しようと4月の中旬に実装しましたが、先日Facebook APIの権限の利用が承認され、1か月弱かかってようやくこの機能を提供できるようになりました。
せっかくなので、試行錯誤の過程をこちらで紹介いたします。

尚、Facebook APIはバージョンの更新頻度が高く、また一部の下位互換がないなど、開発者に親切ではありません。今回は2015年5月8日時点で最新のv2.3での申請について解説します。v3以降になると、参考にならない箇所が多々出てくると思いますのでご注意ください。
逆に現時点で、v1などの情報をネットで調べて権限の申請をしようとすると、説明通りにはできないケースがありますのでご注意ください。
私は英語レベルが低いので、英語レベルが高い方は、FacebookのHelpなどを読んだ方がよっぽど参考になるかもしれません。予めご了承願います。

一部権限は申請不要 ログインだけならすぐに可

Facebook APIの権限は細分化されていますが、

  • email
    メールアドレスの利用権限
  • public_profile
    基本プロフィール(名前、写真、性別、年代)の利用権限
  • user_friends
    友達リストの利用権限

の3つの権限は予め承認されています。これにより、「Facebookアカウントでログインする」機能を提供する場合は、権限の申請は不要です(ただしアプリの一般公開は必要。説明は次章)。
まめわざでは、自分のウォールや、管理するFacebook Pageのウォールに投稿するのが目的なので、

  • mange_pages
    管理しているFacebook PageのAccess Token利用権限
  • publish_actions
    自分のウォールへの投稿権限
  • publish_pages
    管理しているFacebook Pageのウォールへの投稿権限

の3つを申請することとしました。

権限申請前の準備 一般公開

アプリを一般公開するには、メールアドレスを登録してからスイッチをONする必要があります。
SettingページのContact Emailを入力して保存し、Status&Reviewページの
Do you want to make this app and all its live features available to the general public?
のスイッチをONにします。
この過程は、ログインだけで使用する場合も必要です。

権限申請前の準備 基本情報の整備

権限の申請をしようとすると、早速「基本情報を追加せよ」というメッセージが表示されます。

  • Your app must have App Icon set. Please visit App Details to add one.
  • Your app must have Long Description set. Please visit App Details to add one.
  • Your app must have Privacy Policy URL set. Please visit App Details to add one.

ということで、少なくとも

  • アイコン画像(1024x1024px)
  • アプリに関する長い説明
  • プライバシーポリシーのURL

を入力しなければいけません。
そもそもこれらがない場合は、まずは作成しなければいけません。
準備が出来たら、App Detailsのページで各内容を入力してください。

権限申請前の準備 テストユーザーの追加とテスト利用

また、権限を選択時に、「権限をテストしなさい」というメッセージも表示されます。
そこで、RolesページのTest Usersタブから新しいテストユーザーを追加します。
Authorize Test Users for This App?
をONにして、Login Permissionsの欄に権限を列挙します。今回の場合は、
manage_pages,publish_pages,publish_actions
です。最後にCreate Test Usersをクリックします。

追加されたユーザーのEditボタンからChange the name or passwordをくりっくしてパスワードを設定します。
パスワードは、申請時に念のために付記するので、いつも使っているパスワードを利用せず「password」や「1234」などが覚えやすいものを設定します。

テストユーザーは実際にログインが可能です。ウェブアプリでFacebook APIを利用する個所をテストユーザーで利用してみて動作確認をしましょう。
この際、ウェブアプリ上のテストデータは削除せずに残しておきます。まめざわの場合、テスト用のホームページを作成して、これにテストユーザーのアカウントを紐付けしました。
この動作確認時に、画面のキャプチャを撮っておきましょう。申請時に、少なくとも4枚のキャプチャ画像が必要となります。
日本語のページの場合は、これに英語の説明を付記することを考えながら各場面を切り取りましょう。ちょっと多めなぐらいに撮っておく方が良いかと思います。
各キャプチャに英語の説明を付記すると担当者に親切な上、説明の本文を減らすことも可能です。

権限申請に必要なこと 最終的にクレジットカードの登録まで!

次に、権限の利用方法について説明します。申請には以下が必要になります。

  • Facebook Login Integration (required)に
    Facebookアカウントによるログイン手順を箇条書きで説明
  • ItemsのAdd Notesをクリックして表示される小窓(下図3枚)に、各権限をどのように使うか(選択)、および権限利用手順を説明
  • Screenshots (required)に
    以上の説明を補足する画像をアップロード
  • 申請者のアカウントを電話番号かクレジットカード登録で認証

Status & Reviewページに、全て英語で書かなければいけません。
「日本語を分からない人が日本語のページを確認するための英語の説明」という位置づけなので、例えば「保存ボタンを押す」という説明は「Click ”保存”(save) button(step1 of the second screenshot)」というように書いて、”保存”と書かれたボタンをクリックすることと、保存がsaveを意味すること、またどのキャプチャ画像のどの場所を指すのか、を同時に説明します(この英語が間違っている場合はごめんなさい)。

public_actionsのAdd Notes小窓
public_pagesのAdd Notes小窓
manage_pagesのAdd Notes小窓

いよいよ登録ですが、申請者のアカウントが認証されているかどうかの確認が入ります。認証にはSMSを使った携帯電話の認証か、クレジットカードの登録が必要なようです。
私のアカウントでは携帯電話が認証済みになっていましたが、なぜか認証を求められました。再認証をしようとしたところ、なぜかSMSが送信されません。MVNOのmineoを利用しているのが原因のようですが、どうにもならないのでクレジットカードを登録しました。

尚、念のために、Test User(optional)にテストユーザー名を入力しておきましょう。

歯の治療のようにゆったりと進む

以上で申請が完了です。1発合格となればいいのですが、ここで説明したすべてを最初からやらなかったので、何度か却下されました。
却下された際のメッセージは、

  • ログインができない
  • 説明を再現できない

で、2度連続で「ログインできない」というメッセージがあった際は、「同じ理由で却下しているので、これを繰り返した場合はチェックをしばらく停止する」という怖いメッセージが付記されていましたので、万全を期してから再申請することをおすすめします。

テストユーザーのパスワードを送信し忘れた場合
説明した手順を再現できない、というメッセージ

サイトをチェックするまで5営業日以内というメッセージが表示されますが、1日で通知がくることもあれば、週末をはさんで1週間近く待たされる場合もあります。平均すると3日ぐらいは待ったかと思います。
こちらの「早く済ませたい」という思いとは裏腹に、まるで歯の治療のようにゆったりと進みます。

尚、テストユーザーのFacebookアカウントによるログインを確認してから申請した際も、「ログインできない」というメッセージを受け取ったことがありました。
まめわざでは、Facebookアカウントによるログインの他、メールアドレスとパスワードによるログインも可能です。念のために、メールアドレスとパスワードのログインも提供したところ、このメッセージを受け取らなくなりました。
普通に考えれば、Facebook APIの動作確認なのだから、Facebookアカウントによるログイン環境だけを整えれば良いようですが、明らかにそうではない現象がありましたので、同じようなウェブアプリの申請を考えている方は要注意です。

複数URLがある場合は、URLの数だけアプリを作って申請

まめわざは、現在ビジネス向けbizweb.jpと宿泊施設向けeyado.netの2種類のURLを提供しております。
ウェブサイト型Facebook APIでは、Site URL欄にURLを登録し、またアプリを利用するURLをApp Domains欄に登録します。
Domainsと複数形になっているのは、Site URLの他にMobile Site URLがあり、example.comとm.example.comのような2ドメインを同時に申請できるようにするためであり、こちらの都合による複数URLは受け付けてくれません。つまり、複数URLで利用する場合は、内容が全く同じアプリをURLの数だけ作って申請する必要があります。

今回、eyado.netのアプリはかなり初期の段階で申請が通りました。
しかし、同じ内容で申請してもbizweb.jpの方が却下されました。2度目に「承認されたeyado.netアプリとURL以外同じです」と付記しましたが取り合ってもらえませんでした。
eyado.netの方はちょっとルーズな担当者に運良く当たったか、あるいはbizweb.jpの方が厳しい担当者に当たったか、のどちらかだろうと想像しています。これだけ利用者のあるサイトですので、当然複数人の担当者がいるはずです。マニュアルはあるものの、人間の作業なのでさじ加減が変わるのは当然でしょう。
対策としては、どんな担当に当たってもOKを貰えるような下準備をして申請することですが、なかなか容易ではありません。

中の人は動作確認にきたのか?

アクセスログを確認したところ、FACEBOOK-CORPで登録されているIPアドレスからのアクセスがありました。確かに彼らは実際にアクセスをしています。
ただし、2度目以降の申請でOKが出た際に、アクセスログが残っていないことがありました。これは、サイトの確認はOKだが一部説明が足りないという評価で、追加の説明が十分だと認められたのかと推測されます。

いずれにせよ、彼らはしっかりと確認をしています。
1日中アプリの申請をチェックするという大変そうな仕事をしている人へ配慮に、外語語サイトをチェックしていることも加味し、なるべく分かりやすく説明することを心がけましょう。

まとめ

非常に長くなりましたが、まとめます。権限の追加申請に必要なものは、

  • アプリのアイコン画像(1024x1024px)
  • アプリの長い説明
  • ウェブサイト上にプライバシーポリシー
  • テストユーザーとテスト利用
  • テスト利用時のキャプチャ画像(できれば英語の追加説明)
  • ログイン手順の英語の説明
  • 各権限の利用方法と手順の英語の説明
  • 申請者のアカウントの認証(SMSまたはクレジットカード登録)

です。長い道のりになりますが、幸い何度もチャレンジできるので頑張りましょう。スケジュールは長めに確保した方が良いかと思います。

2015年9月11日追記 動画で申請してみる

最近申請した際に、Add Notesの小窓の入力欄のうち、「権限の使い方」の方が選択式に変わっていたので、スクリーンショットを追加して一部説明を変えました。
また、申請却下時のスクリーンショットを追加しました。

2015年の8月後半時点で、テストユーザーのパスワードを設定できないバグがあり、実際にFacebookのバグレポートに掲載されていました。
一方で「テストユーザーのパスワードがないからテストできない」という理由で不承認となっており、要するにバグのせいでアプリ申請ができない状況でした。バグ修正をする部署と、アプリ申請を処理する部署の縦割り感を覚えました。このバグは9月2日に修正されています。

その後、万全を期して申請しましたが、なぜがテスト通り動かないという不承認。返信にYoutubeの動画で説明するのもOKとあったので、動画(右)を作って再申請をしてみるとOKとなりました。
「AG-デスクトップレコーダー」などキャプチャー動画を録れるフリーソフトを使って、動画のURLを添えて申請する、というのも1つの方法であり、ひょっとすると近見になるかもしれません。

2015/5/8