SlideShare a Scribd company logo
1 of 31
Satoshi Tada
 多田 智史
 1980年生まれ

 大学では生命科学を専攻

 現在バイオインフォマティクスを主業務
  とする企業に在籍
 プログラミングは中学時代から

 Perl, Ruby(Rails), R, Java, PHP, etc.
    (VB/VB.net もかつては)
   10日でおぼえるFacebookアプリ開発入門教室
                                                (翔泳社)
                 http://www.seshop.com/product/detail/14184/



              • 10日でおぼえる入門教室シリーズ

              • JavaScript, PHPを使用したWebベースの
                Facebookアプリの解説

              • Android, iOS端末で動作するFacebook
                アプリの解説
   過去
    以前に作ってみたFacebookアプリや
    Facebook発の活動のこと

   体験
    書籍には書いていないけどあったこと

   実験
    最近やってみたこと
 2010年8月 Facebookを始める
 2010年10月 Facebook同時オン会




(このときからFacebookアプリのことは知っていたがユーザー側
だった)
   2011年2月
    ハッカソンでFacebookアプリを題材に
    (いいね!してくれている友達をその数量を反映してHTML5で図示するアプ
    リ)
   高速化にFQLを使用
    →後日、溝上氏(ウォール検索)に情報提供
   2011年3月
    モバイル向けブラウザ用のWebサイトとして公
    開
    “Like connection” (jQuery Mobileの練習)
   2011年3月 東日本大震災
    → 「炊き出しまっぷ」の携帯電話検索サ
    イト
    (Facebook上の友達と開発し、Facebook/Twitterで拡散された)
   HerokuでRubyベースのFacebookアプリ開発
    “News Feed Roll”
    (SSL関連のgemを動かすのに苦労した)
   Facebookアプリの開発は比較的簡単だっ
    た
     ただし1 プログラミングの知識は必要
     ただし2 コードよりも見た目(画面デザイン)

     ただし3 ドキュメントは残念

     ただし4 アプリの許可取り消し操作などテス
      ト段階で面倒
     ただし5 …




   Facebookの友達と開発すると楽しい…か
    も
2011年2月17日 ネット界隈での有名人のアカウント停止騒ぎ
   「春のBAN祭り」に巻き込まれた。
   突然のアプリ無効化
   ログインしたままになっていたブラウザ
    の画面
   名前の変更は許されない
   アプリは自動で有効化されない




        アプリの復元はFAQを見てね!
   再有効化を問合せフォームから希望(日本語で)
 英語でおk!from Facebook
   ↓
 再有効化を問合せフォームから希望(英語

  で)
  (送られたメール記載のIDを複数指定可能)
     ↓
 数日以内に有効化
   管理者を増やそう
    アプリの設定「役割(Roles)」のタブで追加
   アカウント停止は突然にやってくる

   個人アカウントが停止されるとアプリも止ま
    る

   アプリの再有効化はメールに従い問合せ
    フォームから英語で

   アプリを止めないためには、管理者を増やす
    (アプリだけでなくFacebookページにも共通)
   Facebookにリンクを埋め込む
   リンクをクリック
    →サーバにポストのIDが送られる
   初回のクリック→アプリの認証が必要
        (DotCloud でアプリを構成)
<?php
require_once('./ext/fbsdk/facebook.php');

$facebook = new Facebook(array( … ));              ※1
function is_oksession() {                          is_oksession()内でセッション取得
  global $facebook;
  $login_status = $facebook->getLoginStatusUrl(array(
     'ok_session' => null));
  $res = @file_get_contents($login_status);
  return(empty($res) || $facebook->getUser() > 0);
}

function dispatch_url($request_uri) {
  global $facebook;
                                                   ※2
  $uri_params = explode("/", $request_uri);        dispatch_url()内で認証チェック
    switch ($uri_params[1]) {
…
    }
}

dispatch_url($_SERVER['REQUEST_URI']);
?>
   getLoginStatusUrl()のURLが正常に動く
    ↓
    認証が済んでないときだけ認証用の画面にジャ
    ンプ
    認証が済んでいる(ok_session)のときnullになる


   getLoginStatusUrl()のURLがnullを返さない
    ↓
    認証が済んでいても認証用の画面にジャンプす
    る
   絶賛放置中!(しかもclosed)
   getLoginStatusUrl()がおかしいという現象
    がありましたら教えてください
   Chrome extensionを作ってみた

   しかしサーバサイドで動かしているPHP
    SDKのgetLoginStatusUrl()のURLが仕様通
    りに動作してくれない

   情報ある方は教えてください
   個人情報とSNS
    〔個人を特定できる情報を外部のデータ
    ベースに格納することのリスク〕
    ※外部=Facebook以外=サービス提供事業者


   ヒトのゲノム情報 (当然個人によって異な
    る)
    →究極の個人情報とも言える
    →SNSで共有される未来が来るか?
ご清聴ありがとうございました

More Related Content

Similar to facebookアプリ開発あれこれ

FirebaseでN高生証明botを作ってみた
FirebaseでN高生証明botを作ってみたFirebaseでN高生証明botを作ってみた
FirebaseでN高生証明botを作ってみたYoshimura Soichiro
 
Createjsについて@jsCafe20
Createjsについて@jsCafe20Createjsについて@jsCafe20
Createjsについて@jsCafe20佐藤 俊太郎
 
シルバーウィークにfacebookアプリを作成した
シルバーウィークにfacebookアプリを作成したシルバーウィークにfacebookアプリを作成した
シルバーウィークにfacebookアプリを作成したShinichi Hirauchi
 
ゼロからわかる!Facebookアプリの作り方
ゼロからわかる!Facebookアプリの作り方ゼロからわかる!Facebookアプリの作り方
ゼロからわかる!Facebookアプリの作り方Shuichi Takenaka
 
Letsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous DeliveryLetsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous DeliveryNobuhiro Sue
 
仕事でも Groovy を使おう!
仕事でも Groovy を使おう!仕事でも Groovy を使おう!
仕事でも Groovy を使おう!Oda Shinsuke
 
iPhoneアプリ開発を楽に楽しくするサイトまとめ
iPhoneアプリ開発を楽に楽しくするサイトまとめiPhoneアプリ開発を楽に楽しくするサイトまとめ
iPhoneアプリ開発を楽に楽しくするサイトまとめHiramatsu Ryosuke
 

Similar to facebookアプリ開発あれこれ (10)

Flex入門
Flex入門Flex入門
Flex入門
 
FirebaseでN高生証明botを作ってみた
FirebaseでN高生証明botを作ってみたFirebaseでN高生証明botを作ってみた
FirebaseでN高生証明botを作ってみた
 
Flashup 11
Flashup 11Flashup 11
Flashup 11
 
Createjsについて@jsCafe20
Createjsについて@jsCafe20Createjsについて@jsCafe20
Createjsについて@jsCafe20
 
シルバーウィークにfacebookアプリを作成した
シルバーウィークにfacebookアプリを作成したシルバーウィークにfacebookアプリを作成した
シルバーウィークにfacebookアプリを作成した
 
ゼロからわかる!Facebookアプリの作り方
ゼロからわかる!Facebookアプリの作り方ゼロからわかる!Facebookアプリの作り方
ゼロからわかる!Facebookアプリの作り方
 
Rubykaigi2010
Rubykaigi2010Rubykaigi2010
Rubykaigi2010
 
Letsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous DeliveryLetsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous Delivery
 
仕事でも Groovy を使おう!
仕事でも Groovy を使おう!仕事でも Groovy を使おう!
仕事でも Groovy を使おう!
 
iPhoneアプリ開発を楽に楽しくするサイトまとめ
iPhoneアプリ開発を楽に楽しくするサイトまとめiPhoneアプリ開発を楽に楽しくするサイトまとめ
iPhoneアプリ開発を楽に楽しくするサイトまとめ
 

More from pinmarch_t Tada

Dockerことはじめ的なはなし
Dockerことはじめ的なはなしDockerことはじめ的なはなし
Dockerことはじめ的なはなしpinmarch_t Tada
 
SNPのオープンデータを覗き見る TokyoWebmining #47 (2015.06.27)
SNPのオープンデータを覗き見る TokyoWebmining #47 (2015.06.27)SNPのオープンデータを覗き見る TokyoWebmining #47 (2015.06.27)
SNPのオープンデータを覗き見る TokyoWebmining #47 (2015.06.27)pinmarch_t Tada
 
Angularを使ってみる実例いくつか (2015/4/29 GDGKobe)
Angularを使ってみる実例いくつか (2015/4/29 GDGKobe)Angularを使ってみる実例いくつか (2015/4/29 GDGKobe)
Angularを使ってみる実例いくつか (2015/4/29 GDGKobe)pinmarch_t Tada
 
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)pinmarch_t Tada
 
AngularJSでwebアプリを作ってみた!(2014/6/8 GDGKobe)
AngularJSでwebアプリを作ってみた!(2014/6/8 GDGKobe)AngularJSでwebアプリを作ってみた!(2014/6/8 GDGKobe)
AngularJSでwebアプリを作ってみた!(2014/6/8 GDGKobe)pinmarch_t Tada
 
Google Prediction APIを使う前に知っておきたい統計のはなし
Google Prediction APIを使う前に知っておきたい統計のはなしGoogle Prediction APIを使う前に知っておきたい統計のはなし
Google Prediction APIを使う前に知っておきたい統計のはなしpinmarch_t Tada
 
ふぇいすぶっくをたしなむ(2011/5/13Facebook講義資料)
ふぇいすぶっくをたしなむ(2011/5/13Facebook講義資料)ふぇいすぶっくをたしなむ(2011/5/13Facebook講義資料)
ふぇいすぶっくをたしなむ(2011/5/13Facebook講義資料)pinmarch_t Tada
 

More from pinmarch_t Tada (7)

Dockerことはじめ的なはなし
Dockerことはじめ的なはなしDockerことはじめ的なはなし
Dockerことはじめ的なはなし
 
SNPのオープンデータを覗き見る TokyoWebmining #47 (2015.06.27)
SNPのオープンデータを覗き見る TokyoWebmining #47 (2015.06.27)SNPのオープンデータを覗き見る TokyoWebmining #47 (2015.06.27)
SNPのオープンデータを覗き見る TokyoWebmining #47 (2015.06.27)
 
Angularを使ってみる実例いくつか (2015/4/29 GDGKobe)
Angularを使ってみる実例いくつか (2015/4/29 GDGKobe)Angularを使ってみる実例いくつか (2015/4/29 GDGKobe)
Angularを使ってみる実例いくつか (2015/4/29 GDGKobe)
 
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
 
AngularJSでwebアプリを作ってみた!(2014/6/8 GDGKobe)
AngularJSでwebアプリを作ってみた!(2014/6/8 GDGKobe)AngularJSでwebアプリを作ってみた!(2014/6/8 GDGKobe)
AngularJSでwebアプリを作ってみた!(2014/6/8 GDGKobe)
 
Google Prediction APIを使う前に知っておきたい統計のはなし
Google Prediction APIを使う前に知っておきたい統計のはなしGoogle Prediction APIを使う前に知っておきたい統計のはなし
Google Prediction APIを使う前に知っておきたい統計のはなし
 
ふぇいすぶっくをたしなむ(2011/5/13Facebook講義資料)
ふぇいすぶっくをたしなむ(2011/5/13Facebook講義資料)ふぇいすぶっくをたしなむ(2011/5/13Facebook講義資料)
ふぇいすぶっくをたしなむ(2011/5/13Facebook講義資料)
 

facebookアプリ開発あれこれ

  • 2.  多田 智史  1980年生まれ  大学では生命科学を専攻  現在バイオインフォマティクスを主業務 とする企業に在籍  プログラミングは中学時代から  Perl, Ruby(Rails), R, Java, PHP, etc. (VB/VB.net もかつては)
  • 3. 10日でおぼえるFacebookアプリ開発入門教室 (翔泳社) http://www.seshop.com/product/detail/14184/ • 10日でおぼえる入門教室シリーズ • JavaScript, PHPを使用したWebベースの Facebookアプリの解説 • Android, iOS端末で動作するFacebook アプリの解説
  • 4. 過去 以前に作ってみたFacebookアプリや Facebook発の活動のこと  体験 書籍には書いていないけどあったこと  実験 最近やってみたこと
  • 5.  2010年8月 Facebookを始める  2010年10月 Facebook同時オン会 (このときからFacebookアプリのことは知っていたがユーザー側 だった)
  • 6. 2011年2月 ハッカソンでFacebookアプリを題材に (いいね!してくれている友達をその数量を反映してHTML5で図示するアプ リ)
  • 7. 高速化にFQLを使用 →後日、溝上氏(ウォール検索)に情報提供
  • 8. 2011年3月 モバイル向けブラウザ用のWebサイトとして公 開 “Like connection” (jQuery Mobileの練習)
  • 9. 2011年3月 東日本大震災 → 「炊き出しまっぷ」の携帯電話検索サ イト (Facebook上の友達と開発し、Facebook/Twitterで拡散された)
  • 10. HerokuでRubyベースのFacebookアプリ開発 “News Feed Roll” (SSL関連のgemを動かすのに苦労した)
  • 11. Facebookアプリの開発は比較的簡単だっ た  ただし1 プログラミングの知識は必要  ただし2 コードよりも見た目(画面デザイン)  ただし3 ドキュメントは残念  ただし4 アプリの許可取り消し操作などテス ト段階で面倒  ただし5 …  Facebookの友達と開発すると楽しい…か も
  • 13. 「春のBAN祭り」に巻き込まれた。
  • 14. 突然のアプリ無効化
  • 15. ログインしたままになっていたブラウザ の画面
  • 16.
  • 17. 名前の変更は許されない
  • 18. アプリは自動で有効化されない アプリの復元はFAQを見てね!
  • 19. 再有効化を問合せフォームから希望(日本語で)
  • 20.  英語でおk!from Facebook ↓  再有効化を問合せフォームから希望(英語 で) (送られたメール記載のIDを複数指定可能) ↓  数日以内に有効化
  • 21. 管理者を増やそう アプリの設定「役割(Roles)」のタブで追加
  • 22. アカウント停止は突然にやってくる  個人アカウントが停止されるとアプリも止ま る  アプリの再有効化はメールに従い問合せ フォームから英語で  アプリを止めないためには、管理者を増やす (アプリだけでなくFacebookページにも共通)
  • 23. Facebookにリンクを埋め込む
  • 24. リンクをクリック →サーバにポストのIDが送られる
  • 25. 初回のクリック→アプリの認証が必要 (DotCloud でアプリを構成) <?php require_once('./ext/fbsdk/facebook.php'); $facebook = new Facebook(array( … )); ※1 function is_oksession() { is_oksession()内でセッション取得 global $facebook; $login_status = $facebook->getLoginStatusUrl(array( 'ok_session' => null)); $res = @file_get_contents($login_status); return(empty($res) || $facebook->getUser() > 0); } function dispatch_url($request_uri) { global $facebook; ※2 $uri_params = explode("/", $request_uri); dispatch_url()内で認証チェック switch ($uri_params[1]) { … } } dispatch_url($_SERVER['REQUEST_URI']); ?>
  • 26. getLoginStatusUrl()のURLが正常に動く ↓ 認証が済んでないときだけ認証用の画面にジャ ンプ 認証が済んでいる(ok_session)のときnullになる  getLoginStatusUrl()のURLがnullを返さない ↓ 認証が済んでいても認証用の画面にジャンプす る
  • 27. 絶賛放置中!(しかもclosed)
  • 28. getLoginStatusUrl()がおかしいという現象 がありましたら教えてください
  • 29. Chrome extensionを作ってみた  しかしサーバサイドで動かしているPHP SDKのgetLoginStatusUrl()のURLが仕様通 りに動作してくれない  情報ある方は教えてください
  • 30. 個人情報とSNS 〔個人を特定できる情報を外部のデータ ベースに格納することのリスク〕 ※外部=Facebook以外=サービス提供事業者  ヒトのゲノム情報 (当然個人によって異な る) →究極の個人情報とも言える →SNSで共有される未来が来るか?