RとWeb API
-
Upload
yohei-sato -
Category
Technology
-
view
6.964 -
download
4
Transcript of RとWeb API
RとWeb API
@yokkuns: 里 洋平第5回 R勉強会@東京(Toyo.R#05)
2010/05/22
AGENDA
自分と@kakeibot の紹介
Web APIとは
RとWeb API
@yokkuns : 里 洋平
Webエンジニア
Tokyo.R、数式ニヤニヤ勉強会の主催者
確率・統計・モデリング/パターン認識/機械学習/データマイニング/NLP/画像解析/金融工学/保険数理/量子力学などを勉強中。
プログラミング言語は、C/C++/Perl/Ruby/PHP/R/JSとかやってます。
@kakeibot っていうtwitter botの開発者
@yokkuns : 里 洋平
Webエンジニア
Tokyo.R、数式ニヤニヤ勉強会の主催者
確率・統計・モデリング/パターン認識/機械学習/データマイニング/NLP/画像解析/金融工学/保険数理/量子力学などを勉強中。
プログラミング言語は、C/C++/Perl/Ruby/PHP/R/JSとかやってます。
@kakeibot っていうtwitter botの開発者
kakeibotの紹介
Twitter のbot 支出をリプライすると、自動で分類して記録する
Yahoo!のウェブ検索APIとキーフレーズAPIを使ってる
Kakeibotの機能
@kakeibot 食費 1000円
Kakeibotの機能
@kakeibot 食費 1000円
Kakeibotの機能
@kakeibot 弁当 500円
Kakeibotの機能
@kakeibot 弁当 500円
Kakeibotの機能
@kakeibot アナログの目覚まし時計を買ったら500円だった
Kakeibotの機能
@kakeibot アナログの目覚まし時計を買ったら500円だった
Kakeibotの機能
@kakeibot ラーメン800円。テスト
Kakeibotの機能
@kakeibot ラーメン800円。テスト
分類の精度が悪いのでRで作り直そうと思ってます
まだ、何もしてない。。。
まだ、何もしてない。。。
共同開発者募集中です!
twitteRとRCaBoChaを使って、試したりはしてます
@kakeibot コーヒー60円、お菓子に300円。(テスト)
twitteRとRCaBoChaを使って、試したりはしてます
twitteRとRCaBoChaを使って、試したりはしてます
Web APIとは
Web APIとは
自分以外の誰かが作ったデータやプログラムを自分のコンテンツの中で使うための技術
複数のAPIを連携させて独自の価値を持つコンテンツを作ることはマッシュアップと呼ばれてる
Web APIのプロトコル
REST XML-RPC SOAP
Web APIのプロトコル
REST XML-RPC SOAP
REST
4つのHTTPメソッドで操作 GET : 取得
POST : 新規作成
PUT : 更新
DELETE : 削除
GETとPOSTが多い 分かりやすい
GETについては、ブラウザで確認出来る
Web APIの分類
検索系
変換系
認証系
表現系
Web APIの分類
検索系
変換系
認証系
表現系
Amazon 商品検索
Yahoo! JAPAN デベロッパーネットワーク > 検索
Web APIの分類
検索系
変換系
認証系
表現系
郵便専門ネット Webサービス
Yahoo! JAPAN デベロッパーネットワーク > テキスト解析
Web APIの分類
検索系
変換系
認証系
表現系
はてなでOpenID
Yahoo! JAPAN デベロッパーネットワーク > OAuth
Web API まとめ
Web APIは、ネット上のデータを利用することの出来る技術
プロトコルには、REST、XML-RPC、SOAPなどがあるが、RESTが主流
AmazonとかYahoo!などいろんな企業が提供してくれてる
RとWeb API
RとWeb API
Web APIに関連しそうなCRANパッケージ 基本的なもの
RCurl rjson XML
個別サービス専用 RGoocleDocs R2GoogleMaps RKML twitteR RAmazonS3 RAmazonDBREST Rflickr ・・・
RとWeb API
Web APIに関連しそうなCRANパッケージ 基本的なもの
RCurl rjson XML
個別サービス専用 RGoocleDocs R2GoogleMaps RKML twitteR RAmazonS3 RAmazonDBREST Rflickr
Rcurlパッケージ
HTTPやFTP、SCPなどの一般的なネットワークのRのインタフェース
アプリケーション層のプロトコルを抽象化することで、本質的な開発に集中できる
Rcurlパッケージ
HTTPやFTP、SCPなどの一般的なネットワークのRのインタフェース
アプリケーション層のプロトコルを抽象化することで、本質的な開発に集中できる
Rcurlパッケージ
HTTPやFTP、SCPなどの一般的なネットワークのRのインタフェース
アプリケーション層のプロトコルを抽象化することで、本質的な開発に集中できる
curlがやってくれる
Rcurlパッケージのインストール
依存ライブラリ libcurlが必要$ sudo yum install curl-devel
インストール
> install.packages(“RCurl”)
Rcurlパッケージの使い方
getURL(url, ..., .opts = list(), write=basicTextGatherer(), curl = getCurlHandle(), async = length(url) > 1, .encoding = integer())
postForm(uri, ..., .params = list(), .opts = curlOptions(url = uri), curl = getCurlHandle(), style = 'HTTPPOST', .encoding = integer(), binary = NA, .checkParams = TRUE, .contentEncodeFun = curlEscape)
rjsonパッケージ
RでJSON形式のデータを扱うためのパッケージ JSON => Rオブジェクト
Rオブジェクト => JSON
rjsonパッケージの使い方
インストール
> install.packages(“rjson”)
JSONをRオブジェクトに変換
> fromJson( json )
RオブジェクトをJSONに変換
> toJson( r )
Yahoo! ブログ検索 APIを使ってみる(JSON形式)
> library(RCurl) 要求されたパッケージ bitops をロード中です
> library(rjson)> json <-
getURI(“http://search.yahooapis.jp/BlogSearchService/V1/blogSearch?appid=アプリケーションID&output=json&query=TokyoR")
> obj <- try(suppressWarnings(fromJSON(json)), silent = TRUE)
XMLパッケージ
XMLの入出力をサポートするパッケージ HTMLも扱えるので、スクレイピングにも使える
RFinanceYJはこれを使ってます
HTTPやFTPからの取得も可能
Web APIは、XML形式のものが多いので、使えると便利
Yahoo! ブログ検索 APIを使ってみる(XML形式)
> library(XML)> xml <-
xmlParse(‘http://search.yahooapis.jp/BlogSearchService/V1/blogSearch?appid=アプリケーションID&query=TokyoR',T)
> obj <- xmlToDataFrame(xml)Called from: xmlToDataFrame(doc, colClasses, homogeneous,
collectNames, nodes = xmlChildren(xmlRoot(doc)))Browse[1]>> names(obj)[1] "Id" "RssUrl" "Title" "Description" "Url"[6] "Creator" "mobileLink" "DateTime" "Site"
RとWeb API
Web APIに関連しそうなCRANパッケージ 基本的なもの
RCurl XML rjson
個別サービス専用 RGoocleDocs R2CoogleMaps RKML twitteR RAmazonS3 RAmazonDBREST Rflickr ・・・
twitteRパッケージ
Rベースののtwitterクライアント
依存パッケージ RCurl Rjson
twitteRパッケージの使い方(認証が要らないAPI)
Public TimelinepublicTimeline()
ユーザのタイムライン
userTimeline ( ユーザ名 )
twitteRパッケージの使い方(認証が必要なAPI)
初期化
yokkuns <- initSession("yokkuns","********") Rcurlの初期化
自分のタイムライン
friendsTimeline (yokkuns)
リプライ
mentions(yokkuns)
twitteRパッケージの使い方(statusクラス)
これらの関数で返ってくる結果は、statusクラスのオブジェクトのリスト
statusクラスのメソッド show text favorited replyToSN created truncated replyToSID id replyToUID statusSource
screenName
twitteRデモ
時間があれば、実際に動かしてみます
RとWeb API まとめ
Rには、RCurl、rjson、XML、RSOAPなど、Web APIを使うためのパッケージがある
これらを使って、各サービス専用のパッケージがある。 RAmazonS3、twitteRなど
簡単に作れるので、すぐCRANオーナーになれる! Yahoo! のが無いからチャンスかも
宣伝
数式ニヤニヤ勉強会
ライブ告知
8/14(土)に
ライブ出ることに
なりました!
まとめ
自分と@kakeibotの紹介
Web APIとは
RとWeb API 数式ニヤニヤ勉強会の宣伝
ライブ告知
ご清聴ありがとうございました