SlideShare a Scribd company logo
1 of 31
第四回Web APIを使ってWebアプリケーションを作る勉強会 〜 twitter , facebookのAPI を使って 連携アプリを作り始めてみよう〜
前回のおさらい ホットペッパーのAPI(リクルートWebサービス)とtwitter のAPIによる投稿のみのプログラミング体験を2時間で行いました 2つのAPIを無理矢理こじつけたマッシュアップなどもやってみました・・・
twitterでは twitterアプリの登録 ライブラリの利用 ひな形を元にお知らせbotを作成しました <?php require_once("twitteroauth.php"); // OAuthアプリ登録で取得したConsumer keyを設定 $consumer_key=“xxxxxxxxxxxx"; // OAuthアプリ登録で取得したConsumer secretを設定 $consumer_secret=”xxxxxxxxxxxx"; // https://dev.twitter.com/apps/で取得したoauth_tokenを設定(Access token) $oauth_token=”xxxxxxxxxx"; // https://dev.twitter.com/apps/で取得したoauth_token_secretを設定(Access token secret) $oauth_token_secret=”xxxxxxxxxxxxxx"; // twitter アカウントに発言させる内容 $message = "もしかして aaaa"; $status = $message; // 発言を行うメソッドを指定 $method = "statuses/update"; // パラメータを指定(ここでは発言内容を指定) $parameters = array("status" => $status); // TwitterOAuthのインスタンスを生成 $twitter = new TwitterOAuth(   $consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret ); // Twitterに発言をPOST $response = $twitter->post($method, $parameters); $http_info = $twitter->http_info; $http_code = $http_info["http_code"]; // ツイートの成功可否を判別してその結果を画面表示(テキストonly) if($http_code == "200" && !empty($response)) {   print "ツイート成功"; } else {   print "ツイート失敗"; } ?>
本日のテーマは認証 自分が登録したアカウントで発言させるのみでした(この勉強会では初の投稿系API) 今日は第三者に自分が作ったサイトで認証してもらい、そこでその第三者のアカウントで発言してもらうことを目指します(この勉強会では初の認証系API) その第一歩として認証を行います
twitter& facebook
1時間目 twitterで認証、タイムラインの取得、friendsタイムラインの取得
1時間目の流れ 前回のbotの復習について ライブラリを使いましょう! 画面フローの確認(友達のツイートを見るためのフロー) 作業ファイルのセットアップ、準備 動作テスト friends_timelineにアクセス HTMLに整形
twitterお知らせbotの復習 oshirase.botにアクセスするとすぐに発言される(そこに設定情報等すべて書かれている) Oauth.phpとtwitteroauth.phpというライブラリを利用している 登録したアプリケーション名が表示される(日本語文化圏でないクライアントでは全角文字は表示されない)
OAuth認証 ライブラリを使いましょう! twitteroauthat master from abraham/twitteroauth– GitHubhttps://github.com/abraham/twitteroauth/tree/master/twitteroauth/ 細かい認証の仕組みを気にせずに開発に集中出来る!
画面フローの確認 「Signinボタン」 友達のタイムライン表示
作業ファイルのセットアップ templateフォルダから下記ファイルをworkフォルダにコピーして作業を始めます socialconfig.phptwitterのアクセストークンやコールバック関数を書き込んでください apifunc.php callback.php clearsessions.php connect.php html.inc imagesフォルダ(ボタンデザインが2種類入っている) index.php redirect.php OAuth.php twitteroauth.php
準備事項 callbackURLの設定例:http://127.0.0.1/webapi4/sample/twitteroauth/callback.php※http://localhost/は受け付けられない※当然、サーバーにアップした場合はサーバーのURLに書き換える必要がある
ファイルにアクセス http://127.0.0.1/webapi4/work/index.php ※はじめての時だけ
statuses/friends_timelineの取得 自分のfriendsのツイートと自分のツイートで構成される(homeと異なりリツイートは含まれない) index.php内の $content = $connection->get(‘account/verify_credentials’);を $content = $connection->get(‘statuses/friends_timeline’);と書き換えるだけ
HTMLの形に整形するには? 配列変数から一つずつの情報を取り出しHTMLテンプレートの中に埋め込んでいく $content=""; foreach ($contents as $hit) { $content .="<strong>".$hit->user->screen_name."</strong>"; $content .=$hit->text."<hr>"; }
twitterマッシュアップのヒント タイムラインは人それぞれ、同じ物が存在しない。また、友達や気になる人が多い テキスト解析で感情をアイコン化したり、形態素解析もしくはキーフレーズ抽出でコンテンツマッチで商品紹介するなど※切り口=検索、トレンドAPIの利用等 twitterクライアントを作る。自分専用に使いやすくしたこだわりにクライアントを作る 掲示板投稿の認証にtwitterを使い、掲示板投稿内容の頭100字ぐらいを本人とサイトアカウントのtwitterタイムラインに流す
2時間目 facebook APIの概念、PHP SDKの利用方法、アプリにする方法
2時間目の流れ 開発者登録の確認 facebookアプリ登録 アプリをfacebokに結合する 開発中はsandboxモードにする PHP SDKモードの利用方法 プロフィール情報の表示解説 friendsリスト表示の解説
facebookの開発者登録 事前に開発者登録のお願いをしております(そこそこ時間と手間がかかります) これからされる方はさっと済ませておいてください 下記URLが最新の開発者登録の方法を解説しているサイトです。無料の会員登録が必要ですが、有益な記事ですので、ご確認ください。 http://itpro.nikkeibp.co.jp/article/COLUMN/20110929/369675/
facebookアプリ登録 https://developers.facebook.com/apps 上記URLから右上の「新しいアプリケーションを作成」ボタンを押して必要事項を記入します アプリの名前を入れます 半角英数字7文字以上で入力
アプリをFacebookに結合する
開発中はSandboxモードにする 開発中は他の人がアプリに触れないようにするため、Sandboxモード(開発者のみ使える)にしておく 関係者を指定して使えるようにすることは出来る
PHP SDKの利用方法 https://github.com/facebook/php-sdk/ 上記URLからダウンロードできる しかし、最新版はすでに動かない・・・。$session = $facebook->getSession();ここに問題があるらしい。下記の通り書き換えて、その後も準じて書き換えていきます。$uid= $facebook->getUser();※元となる参考ソースhttp://d.hatena.ne.jp/ramyana/20101012/1286897340
プロフィール情報 $me = $facebook->api('/me'); プロフィール情報の取り出しは$meに配列の形で入っているので、<?phpecho $me[‘name’]; ?>といったPHPタグの形で記述できる。写真URLはhttps://graph.facebook.com/ユーザーID/pictureとなる
Friendsリスト表示 $friends = $facebook->api('/me/friends');  $friendsに複数の友達情報が含まれていて、$friendsから$friendに一人ずつ情報を代入してforeachで回します。$friend[‘name’]でその人の名前を取り出すことが出来ます
facebookマッシュアップヒント 今回の事例はfacebookアプリライク 日常facebook使う人向けのコンテンツアグリケーションサービス Youtube、ホットペッパー、地図等アプリとして登録しておくことでそのサイトに行かなくても便利なもの(付加価値がつくもの。例:居住地域や最寄り駅をベースにデフォルト検索されている等)
3時間目 1時間集中ワーク、マッシュアップを目指す
舞台がどこになるかを決めよう アプリ プラットフォーム twitter,facebook,mixi等 アプリ
レファレンス  ▽Documentation | Twitter Developers https://dev.twitter.com/docs  ▽Graph API - Facebook開発者 https://developers.facebook.com/docs/reference/api/  ▽Getting Started - Facebook開発者 https://developers.facebook.com/docs/
参考書籍(twitter) Twitter API プログラミング Twitter API ポケットレファレンス 書籍ではないですが・・・Twitter API 仕様書http://watcher.moe-nifty.com/memo/docs/twitterAPI.txt
参考書籍(facebook) スマートにプログラミングfacebookアプリ開発 facebookアプリケーション開発ガイド(中級技術者向け) facebookデザインブックステップアップ活用編 書籍ではないですが・・・facebookアプリの作り方・PHP 編(2010 年 10 月版) - 19790401173.4http://d.hatena.ne.jp/ramyana/20101012/1286897340 仕様変更が頻繁にあるためサンプルソースがそのまま使えないことに注意

More Related Content

Similar to 第四回Web apiを使ってwebアプリケーションを作る勉強会テキスト2

Google App EngineでTwitterアプリを作ろう
Google App EngineでTwitterアプリを作ろうGoogle App EngineでTwitterアプリを作ろう
Google App EngineでTwitterアプリを作ろうkenji4569
 
Opauthライブラリによるtwitter,facebook認証について
Opauthライブラリによるtwitter,facebook認証についてOpauthライブラリによるtwitter,facebook認証について
Opauthライブラリによるtwitter,facebook認証について松本 雄貴
 
React(TypeScript) + Go + Auth0 で実現する管理画面
React(TypeScript) + Go + Auth0 で実現する管理画面React(TypeScript) + Go + Auth0 で実現する管理画面
React(TypeScript) + Go + Auth0 で実現する管理画面KentaEndoh
 
Login facebook
Login facebookLogin facebook
Login facebookJun Chiba
 
マッシュアップ勉強会
マッシュアップ勉強会マッシュアップ勉強会
マッシュアップ勉強会guestadcb01
 
マッシュアップ勉強会
マッシュアップ勉強会マッシュアップ勉強会
マッシュアップ勉強会seiryo
 
python-twitterを用いたTwitterデータ収集
python-twitterを用いたTwitterデータ収集python-twitterを用いたTwitterデータ収集
python-twitterを用いたTwitterデータ収集Hikaru Takemura
 
Rails and twitter #twtr_hack
Rails and twitter #twtr_hackRails and twitter #twtr_hack
Rails and twitter #twtr_hacki7a
 
Sl study 20150804-soft-layer-apibasic-shibata
Sl study 20150804-soft-layer-apibasic-shibataSl study 20150804-soft-layer-apibasic-shibata
Sl study 20150804-soft-layer-apibasic-shibataNaoki Shibata
 
20131030 dstnハッカソン - ワークショップ
20131030 dstnハッカソン - ワークショップ20131030 dstnハッカソン - ワークショップ
20131030 dstnハッカソン - ワークショップdstn
 
Google App Engineでできる、あんなこと/こんなこと
Google App Engineでできる、あんなこと/こんなことGoogle App Engineでできる、あんなこと/こんなこと
Google App Engineでできる、あんなこと/こんなことa-know
 
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験miso- soup3
 
milkcocoa入門@milkcocoa meetup#1
milkcocoa入門@milkcocoa meetup#1milkcocoa入門@milkcocoa meetup#1
milkcocoa入門@milkcocoa meetup#1Syuhei Hiya
 
単機能Twitter クライアント試作のための各種方法の検討
単機能Twitter クライアント試作のための各種方法の検討単機能Twitter クライアント試作のための各種方法の検討
単機能Twitter クライアント試作のための各種方法の検討Akira Niiyama
 
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hackyut148atgmaildotcom
 
FuelPHPでSentry導入
FuelPHPでSentry導入FuelPHPでSentry導入
FuelPHPでSentry導入fagai
 
Google+ API の紹介 - Google Social Developers 2011 Winter
Google+ API の紹介 - Google Social Developers 2011 WinterGoogle+ API の紹介 - Google Social Developers 2011 Winter
Google+ API の紹介 - Google Social Developers 2011 WinterNobuhiro Nakajima
 
Twitter4jハンズオン 5/1 #twtr_hack
Twitter4jハンズオン 5/1 #twtr_hackTwitter4jハンズオン 5/1 #twtr_hack
Twitter4jハンズオン 5/1 #twtr_hackYusuke Yamamoto
 
Api gurunavi
Api gurunaviApi gurunavi
Api gurunaviJun Chiba
 

Similar to 第四回Web apiを使ってwebアプリケーションを作る勉強会テキスト2 (20)

Google App EngineでTwitterアプリを作ろう
Google App EngineでTwitterアプリを作ろうGoogle App EngineでTwitterアプリを作ろう
Google App EngineでTwitterアプリを作ろう
 
PFI Seminar 2012/02/24
PFI Seminar 2012/02/24PFI Seminar 2012/02/24
PFI Seminar 2012/02/24
 
Opauthライブラリによるtwitter,facebook認証について
Opauthライブラリによるtwitter,facebook認証についてOpauthライブラリによるtwitter,facebook認証について
Opauthライブラリによるtwitter,facebook認証について
 
React(TypeScript) + Go + Auth0 で実現する管理画面
React(TypeScript) + Go + Auth0 で実現する管理画面React(TypeScript) + Go + Auth0 で実現する管理画面
React(TypeScript) + Go + Auth0 で実現する管理画面
 
Login facebook
Login facebookLogin facebook
Login facebook
 
マッシュアップ勉強会
マッシュアップ勉強会マッシュアップ勉強会
マッシュアップ勉強会
 
マッシュアップ勉強会
マッシュアップ勉強会マッシュアップ勉強会
マッシュアップ勉強会
 
python-twitterを用いたTwitterデータ収集
python-twitterを用いたTwitterデータ収集python-twitterを用いたTwitterデータ収集
python-twitterを用いたTwitterデータ収集
 
Rails and twitter #twtr_hack
Rails and twitter #twtr_hackRails and twitter #twtr_hack
Rails and twitter #twtr_hack
 
Sl study 20150804-soft-layer-apibasic-shibata
Sl study 20150804-soft-layer-apibasic-shibataSl study 20150804-soft-layer-apibasic-shibata
Sl study 20150804-soft-layer-apibasic-shibata
 
20131030 dstnハッカソン - ワークショップ
20131030 dstnハッカソン - ワークショップ20131030 dstnハッカソン - ワークショップ
20131030 dstnハッカソン - ワークショップ
 
Google App Engineでできる、あんなこと/こんなこと
Google App Engineでできる、あんなこと/こんなことGoogle App Engineでできる、あんなこと/こんなこと
Google App Engineでできる、あんなこと/こんなこと
 
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
 
milkcocoa入門@milkcocoa meetup#1
milkcocoa入門@milkcocoa meetup#1milkcocoa入門@milkcocoa meetup#1
milkcocoa入門@milkcocoa meetup#1
 
単機能Twitter クライアント試作のための各種方法の検討
単機能Twitter クライアント試作のための各種方法の検討単機能Twitter クライアント試作のための各種方法の検討
単機能Twitter クライアント試作のための各種方法の検討
 
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
 
FuelPHPでSentry導入
FuelPHPでSentry導入FuelPHPでSentry導入
FuelPHPでSentry導入
 
Google+ API の紹介 - Google Social Developers 2011 Winter
Google+ API の紹介 - Google Social Developers 2011 WinterGoogle+ API の紹介 - Google Social Developers 2011 Winter
Google+ API の紹介 - Google Social Developers 2011 Winter
 
Twitter4jハンズオン 5/1 #twtr_hack
Twitter4jハンズオン 5/1 #twtr_hackTwitter4jハンズオン 5/1 #twtr_hack
Twitter4jハンズオン 5/1 #twtr_hack
 
Api gurunavi
Api gurunaviApi gurunavi
Api gurunavi
 

第四回Web apiを使ってwebアプリケーションを作る勉強会テキスト2