はじめまして。

THE  CLIPの藤牧(@mackey_100)です。

Facebookアプリを作っていると、テストユーザーを沢山作って動きを確かめたくなることがよくあります。ただ、沢山テストユーザーを作ってダッシュボードから手動で管理しようとすると大きな手間がかかってしまいます。面倒な思いをされている方も多いのではないのでしょうか?

そこで、今回はGraphAPIを使って

  • テストユーザーを自動生成する方法
  • テストユーザー同士のソーシャルグラフを自動で構築する方法

をご紹介しようと思います。

テストユーザーを自動生成する方法

テストユーザーの作成方法

テストユーザーの作成にはtest-usersのAPIを使います。

END POINT

https://graph.facebook.com/APP_ID/accounts/test-users

METHOD

POST

PARAMETERS
installed #アプリをインストールしているか
permissions #インストール時のパーミッション
name #名前
locale #利用言語
access_token #アプリのトークン

日本人のユーザーを作成

テストユーザーの作成はダッシュボードからでもできるのですが、

Screen Shot 2014-08-08 at 6.12.35 PM

のように、どこの国の人か分からない感じになってしまいテンションが上がりません。
今回は日本人の名前でテストユーザーを作りたいと思います。日本人の名前はgimeiというGemがあるのでこちらを使います。Fakerの日本人版のようなものですが、なかなか便利です。

willnet/gimei · GitHub

Rake Task化

今回はRailsを使っているので Rake task化していますが、他の環境でも同じような書き方でいけると思います。

利用方法

$ rake dummy_user:create number=ユーザー数

これで日本語名のテストユーザーが作成されます。

Screen Shot 2014-08-08 at 6.13.45 PM

ほんのちょっとした違いですが、ユーザー名にリアリティが出てくるので開発のテンションも高まるはずです。
こういうの、大事ですよね!!

テストユーザー同士のソーシャルグラフを自動で構築する方法

次に、テストユーザー同士で友達関係を作る方法をご紹介します。アプリのテスト時にソーシャルグラフを活用する場面はよくあると思いますが、ダッシュボードから手作業で設定するのは骨が折れるのでAPIを使って自動化しましょう。

ユーザー一覧の取得

ユーザー一覧を取得します。ユーザー一覧取得方法はこちら

END POINT

https://graph.facebook.com/APP_ID/accounts/test-users?access_token=APP_TOKEN

友人関係の構築

次に、取得した一覧を使って友達関係を構築します。
詳細はこちら

友だち申請

https://graph.facebook.com/テストユーザーAのID/friends/テストユーザーBのID

テストユーザーAのaccess_tokenをパラーメーターとして渡してpostすることで、
テストユーザーAからテストユーザーB友達リクエストをすることができます。

友だち申請の承認

https://graph.facebook.com/テストユーザーAのID/friends/テストユーザーBのID

に、テストユーザーBのaccess_tokenをパラーメーターとして渡してpostすることで、承認されます。

idやaccess_tokenはユーザー一覧取得時に取れるので、そちらを使って下さい。

Rake Task化

こちらもRake Task化しました

利用方法

$ rake dummy_user:friends

貼ったコードの通りに実行すると、「1人目(0番目)のユーザーが21人目までのユーザーと友達」にすることができます。
開発においてそこまで頻繁に使うものではないので、ユーザー数等は固定してしまっていますが、もし頻繁に使うようであれば引数を使えるようにして汎用性を高めるといいと思います。

以上、簡単にご紹介させていたただきましたが、如何でしたでしょうか?
同じようなことをしようとしている方の参考に少しでもなれば幸いです。