著者もtomochizuを作成しているときに、この問題で1日近くを無駄にしてしまいました。実行しているアプリ情報を削除するアプリの許可情報を変更した場合には、次の操作が必要です。プライバシー設定の画面の左下に、「アプリとウェブサイト」という設定項目がありますのでリンク「設定を編集」をクリックします。すると、画面が開くので、該当するアプリ(今回の例では、nk_sample)をクリックして先に進みます。これで開いた画面で、右上のリンク「アプリを削除」を選びます。これはあなたの実行しているアプリ情報を削除するだけで、開発中のアプリが削除されるわけではありません。削除を実行したら、また独自サンプルのアドレスを入力してアプリを実行します。するとアプリの許可の画面が変わりました!以下の情報の許可を求められてくるようになりました。あなたのプロフィール情報へのアクセス:出身地と居住地あなたの友達の情報へのアクセス:出身地と居住地プライバシー設定Facebookアプリを作成するときには避けて通れない問題[許可する]をクリックして先へ進みましょう。成功です!ようやく[hometown]と[location]が表示されるようになりました。プライバシー設定について分量を費やしましたが、Facebookアプリを作成するときには避けて通れない問題ですので、しっかり理解しておいてください。友達の情報の取得とウォールへの書き込みFacebookアプリ作成に必要なAPIの知識tomochizuのようなFacebookアプリを作成するのに必要なAPIの知識はあと2つあります。「友達の情報の取得」と「ウォールへの書き込み」です。友達の情報の取得から見ていきましょう。$facebook->api('/me/friends');/meで自分のデータを取得してきましたが、/me/friendsで友達の情報が取得できます。一度に複数の友達のidを指定できる次は友達のidが格納されている配列の$friendsから、必要な情報を取ってくる部分です。ここでの注意点は、uidsには一度に複数の友達のidを指定できることです。ごとにAPIを実行しており、100人以上の処理では取得に時間がかかりすぎて頭を抱えていました。ここのuidsが複数形だということに気が付いた後は、1000人以上の処理も1回で問題なく取得できています。ウォールへの書き込みユーザーの意思を確認してから最後に自分のウォールへの書き込みです。/me/feedに対してpostを指定します。ウォールへの投稿はできるだけユーザーの意思を確認してからにしてください。アプリを実行するだけでウォールに書き込みを行う行為は嫌われます。ユーザーに対して説明を表示し、[許可する]ボタンがクリックされたら(了解を得られたら)はじめてウォールに書き込むような動作が望ましいのです。ダウンロードページから入手これらの処理を追加したコードは、ダウンロードページから入手できます。そのコードを実行すると、あなたの友達のリストが居住地と出身地ととも表示されます。wall」リンクをクリックすると、あなたのウォールに対して、あなたの居住地と出身地と友達の数が投稿されます。アプリの魅力を高めるには根気強くFacebookのデータと向き合うここまでの説明でtomochizuのようなFacebookアプリを作成するのに必要なAPIを説明しました。同様のアプリを作成できるわけですが、アプリを完成させてサービスを継続していくには、実は根気強くFacebookのデータと向き合う必要があります。日本の市町村で指定できない都市がたくさんある2011年2月現在、Facebookの[hometown]と[location]の情報には、まだかなり問題があります。日本の市町村で指定できない都市が、たくさんあるのです。該当する都市の人たちは住所情報を入れられないために非公開にしたり、異なる市町村を入力していたりします。Tokyo」と入力されている人が多くみられます。住所情報のおかしい都市さらに住所情報でMeguroとだけ入っていたものがstate(都道府県)はHokkaidoになっていたり、ShibuyaがKanagawaだったりという問題もありました。著者は住所情報のおかしい都市で、気が付いた場所についてはプログラム側で修正して対応しています。[gender]には2010年11月には男性・女性と入っていたのが、2010年12月にはある日突然、male、femaleになっていました。それに対応してしばらくするとまた男性・女性に戻ったりしたので、現在は両方に対応しています。日々進化を続けるFacebook出力されるデータに対応し続けるこのように日々進化を続けるFacebookをプラットフォームにしてアプリを作成する場合は、出力されるデータに対して対応し続ける根気が必要です。Facebookアプリの特徴と注意点のおさらいユーザーの個人情報をSNS側から取得ソーシャルアプリの最大の特徴は、ユーザーの個人情報を改めて入力させることなく、SNS側から取得して動かせる点にあります。Facebookアプリでは友達の情報を取得したり、友達のウォールに出力したりできます。そのため、多くのFacebookアプリが、より多くの人に実行してもらおうとユーザーのウォールに書き込みを行います。友達がこのアプリからのウォールの書き込みを読んで興味を示せば、そのアプリをクリックして実行し、その結果がまたウォールに書き込まれ・・・というサイクルで広がっていくわけです。前述したように、ゲームのアプリでは、友達のウォールに対して勧誘したり、助けを求める書き込みをしたりするものが結構あります。SPAMアプリより悪質なものはSCAM(詐欺まがいの)アプリしかしながら、機能的にできるということと、してよいということは違います。外国製のFacebookアプリの中には、実行するだけで自分のウォールと友達のウォールに対して無断で書き込むものもありますが、その行為を多くのユーザーは嫌っています。うっかり実行してしまうと自分だけでなく友達にも嫌な思いをさせてしまうアプリは、SPAMアプリと呼ばれています(より酷いものはSCAM(詐欺まがいの)アプリと呼ばれています)。ユーザーからSPAMアプリと判定されるとFacebookの運営本部へ通報されたり、アプリのレビューで最低点を付けられてしまいます。Facebookは原則として実名・顔写真付きの世界ですから、アプリからの出力先は問題ないかをじっくり考えてから実装してください。SPAMアプリと判定されないために方針を守るSPAMアプリと判定されないために、以下の方針を守ることをお勧めします。アプリを起動しただけではウォールへは書き込まないウォールへ書き込むときには、それを画面に明示する友達のウォールへの書き込みは、できる限り避けるFacebookアプリを作成しよう駆け足で、Facebookアプリの作成法を説明しました。実際にはアプリ用アイコンの登録やアプリ用Facebookページの運営など、ここで説明していない事柄を学ぶ必要があります。アプリのサンプルが動かせれば、後の事柄は大した障壁ではありません。あなたもFacebookアプリを作成して、世界へ羽ばたきましょう。Facebookって何?SNS(ソーシャル・ネットワーキング・サービス)あるいは交流サイトといわれることの多いFacebookは、日々のつぶやきや写真、動画、メッセージなどの投稿コンテンツを、友人たちと交流しながら楽しめるWebサービスです。次のような基本機能があります。ニュースフィードユーザー自身や友達の投稿が時系列で表示されます。通常はこのニュースフィードが基本画面です。ウォールユーザー自身の近況・写真・リンクの表示場所です。プライバシー設定で禁止していなければ、友達から投稿されることもあります。プロフィール画面の一部でもあります。Facebookページ企業や個人が独自の情報(自らの商品やサービスの宣伝、活動報告など)を発信するページです。Facebookのアカウント登録者が作成できます。実名での登録が推奨Facebookのアカウント登録は簡単です。Facebookのサイト(http://www.facebook.com/)にアクセスして、必要事項を記入するだけです。実名での登録が推奨されており、個人情報と友人関係をベースにしたコンテンツ交流が基本です。Facebookは友人たちとのオープンなつながり(=ソーシャルグラフ)に基づいたサービスであり、それをプラットフォーム化して有効に活用する手段の一つがFacebookアプリです。そのため、プライバシーへの配慮は非常に重要です。若き天才の野望」(日経BP社刊)を読むといっそう理解できるでしょう。プライバシーやプラットフォームについてそれぞれ1章を設けて詳しく書かれています。開発に取り掛かる前に、以下の注意点を知ってください。作成前にFacebookの利用規約を読もうFacebookアプリでは実行したユーザーの個人データを読み取れます。本人や友達だけが読み取れる情報を第三者が見られるページへ出力してしまったら、問題になります。Facebookの利用規約(http://www.facebook.com/terms.php)を必ず読んでから、Facebookアプリの作成に取り組みましょう。「9.アプリケーションおよびウェブサイトの開発者および運営者に適用される特別規定」は、よく読んで違反しないようにアプリを作成する必要があります。9.1にある「開発者向け原則とポリシー」(http://developers.facebook.com/policy/)は英語ですが、翻訳サービスなどを使用して内容を把握しておいてください。日々進化するので変化を受け入れ、追従する姿勢が大切Facebookは、毎週のようにどこかの機能がバージョンアップしている状態です。2011年になってからもファンページの表記がFacebookページへ変わったり、新しいメッセージ機能がリリース予定であったりと常に進化しています。そのため、記事中で手順を説明するときに、「メニューから、XXを選んで、YYに進み~」のような書き方だと、数カ月もするとその手順を追えない可能性があります。そこで、記事中で必要なWebページについては、そのアドレスを直接記述するようにしています。APIを用いてアプリを作成しました。APIだけでは取ってこれない情報もあります。Language)というデータベースのアクセスに利用するSQL文に似た形で利用できるAPIもあります。APIsと呼ばれる古いAPIも存在しています。アプリの機能によってはこれらを使い分ける必要があります。DEVELOPERSのページ(http://developers.facebook.com/)から情報を探して活用する姿勢が求められます。著者がアプリを作り始めた2010年秋には日本語で書かれたFacebook開発のドキュメントは、ほとんどありませんでした。2011年3月現在、日本人の技術者が解説しているブログもかなり増えています。