SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Google Fusion Tables API v1.0
Tips Rev2
2013/5/3
@awwa500
Wataru Sato
1
自己紹介
• Wataru Sato
– 本業は通信キャリア研究所向けにソフトウェア
作っています
– 個人的にはAndroid、AWS(SDB)、Fusion Tablesなど
で遊んでいます
• SmartTraining
• ググれカス plug-in for twicca
• 他
• @awwa500
• awwa@gmail.com
2
きっかけ
• Fusion Tables APIが新しくなり、乗り換え
てみました
• 乗り換えてみたはいいけど、ハマりま
くってドブ板踏み抜き過ぎて疲れました
• 踏み抜いたドブ板の数を数えてみたら結
構あったので、まとめてみました
• Rev2:その後、気付いた点があったので
追記修正しました。
3
Google Fusion Tablesとは
• Google Driveで使えるDBっぽいヤツ
• ユーザプライベートなデータを(たぶ
ん)無料で利用できる
4
←コレ
Google Fusion Tablesとは
• データを手軽に可視化できる
5
Google Fusion Tables APIとは
• FTのデータにアクセスするためのAPI
• 2つのAPI
– SQL API
• 既にオワコン
• We will now shut down SQL API after January
14, 2013.
– API v1.0
• 今ならこれを使うしかない
• RESTful HTTP経由でSQL的なクエリ操作ができる
• 結果はJSON or CSVで受け取る
6
ライブラリ
• 実際、使おうと思ったら、依存関係にあるラ
イブラリが13個。合計3MBありました。
– https://code.google.com/p/google-api-java-
client/wiki/APIs#Fusion_Tables_API
• 個人的にはサイズがデカすぎな印象(元のア
プリが5MBなもんで)
• あと、使い方覚えなきゃいけない的な面倒な
臭いがプンプンするので使ってません
• もしかしたら、コレを使っていればドブ板踏
み破る数は減っていたかも
• 是非使ってみて下さい
7
基本
• Google APIs consoleでサービス有効化
• OAuth 2.0
• HTTPリクエスト
• レスポンスパース
• 詳しくは
– https://developers.google.com/fusiontables/docs/
v1/using
8
OAuth2.0
• 通常は、普通にOAuth2すればいい
• Androidの場合、AccountManager経由がセキュリティ的
に好ましい
– 琴線探査:AndroidのAccountManager経由でGoogleの
OAuth2認証を行うには?(外部ライブラリ完全非依存版)
• http://kinsentansa.blogspot.jp/2012/08/androidaccountmanagergoog
leoauth2.html
• AndroidでWebView経由で行うのは好ましくない
– Shogo’s Blog:OAuthの認証にWebViewを使うのはやめよう
• http://shogo82148.github.com/blog/2012/11/24/no-more-webview/
• この記事はTwitterのOauthに関して書かれているが、WebViewの
脆弱性に関しては同じ事
9
OAuth2.0
• ただし、今のところAndroidの
AccountManager経由でOAuth2.0可能なのは
ICS以降
– https://developers.google.com/console/help/?hl=
ja
• それ以前のバージョンでは、実質的に
WebView経由もしくはそれと同等のセキュ
リティレベルでの方法でしかOAuth2.0する
ことができない。
10
テーブルアクセスの基本
• Create table時に返されるtableIdを使って
テーブル指定する必要がある
11
Create table
Client FT
tableId
SELECT * FROM <table_id>
レコードアクセスの基本
• Insert row時に生成されるROWIDを使って
更新(update,delete)する必要がある
12
Insert row
Client FT
ROWID
UPDATE <table_id> SET <column_name> = <value> WHERE ROWID = <row_id>
レコードCRUD
CRUD 手法 詳細
Create Insert row 1クエリ1レコード挿入
クエリを”;”で繋げて1リクエストに複数クエリ送信可
戻り値でROWIDを得ることができる
Import rows POSTのBodyにCSVを突っ込んで大量レコード挿入可
戻り値でROWIDを得ることができない
Select Select rows 作成したColumnの他、ROWIDを取得することができ
る
Update Update row ROWID指定するか、無指定で全レコード対象
任意の条件を指定することはできない
Delete Delete row ROWID指定するか、無指定で全レコード対象
任意の条件を指定することはできない
13
大量レコード挿入戦略~Insert row
~
• Insert rowでは、1リクエストあたり500 Insertまでいけ
る、とドキュメントに書いてある
– https://developers.google.com/fusiontables/docs/v1/using#inse
rtRow
• しかし、sqlパラメータはQueryString
• 実際にはURL長の制限を受ける
• と思っていたが、実はContentType=application/x-www-
form-urlencodedと指定してやるとBodyのsql=パラメー
タが有効になる。
– そんなことドキュメントに書いてない。
– ヾ(*`Д´*)ノ“
– 連続的に17.8万レコードまでInsert row可能なことを確認
• それ以上実行すると502エラーが返る
• 1時間くらいすると復旧する
14
大量レコード挿入戦略~Import rows
~
• Import rowsなら1リクエストで100MBまでの
データを挿入できる
• しかし、戻り値でROWIDは取得できない
• ROWIDが欲しければ、Import rows後、Select
する必要がある
• しかし、500レコード以上をImport rowsした
場合、すぐにSelectしてもROWIDが取得でき
ない場合がある
• どうやらImport rows後のレコード反映は、
500レコードずつ分割されて非同期で実行さ
れている模様
15
大量レコード挿入戦略~Import rows
~
• 大量レコードImport時の雰囲気
16
Import rows (over 500 rows)
Client FT
Insert rows(500)
BackEnd
Insert rows(500)Select
Insert rows(500)
Insert rows(500)
Insert rows(500)
一部レコードしか取れない!
反映に時間
がかかる
NumRowsReceived=2500
大量レコード挿入戦略~Import rows
~
• 期待したレコード数になるまでポーリン
グ
17
Import rows (over 500 rows)
Client FT
Insert rows(500)
BackEnd
Insert rows(500)Select count()
Insert rows(500)
Insert rows(500)
Insert rows(500)
1000
反映に時間
がかかる
Select count()
2000
Select count()
2500
Select
ROWID
NumRowsReceived=2500
大量レコード挿入戦略~Import rows
~
• もしくはImport rows後すぐにはROWIDは取
りに行かない。必要になったタイミング
で個別にROWIDをSelect後、更新操作を行
う
18
大量レコード挿入戦略~Import rows
~
• しかも、Import rowsで大量レコード投入
後、即同じテーブルに対してImport rows
すると
– 417:Cannot execute ImportRows because another
task of type ImportRows is still running.でエラー
– せつない
19
大量レコード挿入戦略~Import rows
~
• Import rowsの多重度上限は「1」
20
Import rows (over 500 rows)
Client FT
Insert rows(500)
BackEnd
Insert rows(500)
Insert rows(500)
Insert rows(500)
Insert rows(500)
反映に時間
がかかる
他のタスク実行中なのでNG!
Import rows (over 500 rows)
• まとめ
– アクセス頻度に応じた作戦をとること
大量レコード挿入戦略~Import rows
~
21
レコードアクセス頻
度
方法
高い Insert rowで戻ってきたROWIDを取得してローカルに記憶
しておき、即更新処理を可能にしておく
低い Import rows後、ROWIDは必要になったタイミングで個別
にSelect後、目的の更新処理を実行する
ただし、焦って取りに行かない
• ROWID指定した場合
– レスポンスのaffectedRowsには影響を受けたレ
コード数が整数で返ってくる
• ROWID指定しない場合
– レスポンスのaffectedRowsに”all rows”という文
字列が返ってくる
レコード更新(Update, Delete)時
注意
22
_人人人人人人人人_
>文字列が返ってくる<
 ̄^Y^Y^Y^Y^Y^Y^Y^Y ̄
• Insert rowした場合のROWID
– 割り当てられるROWIDは昇順とは限らない
• Order by無指定時のソート順
– ROWIDの昇順でソートされて返ってくる
• Order byにROWIDを指定すると503
– 指定してはいけない
• ROWID = 0でSelectすると503
– 指定してはいけない
ROWIDに関する注意
23
• そんな機能はない
• あるわけがない
• どうしてもやりたければ
– A案)子テーブルに親テーブルレコードのROWID
を格納するColumnを設ける
– B案)親テーブルのレコード毎に子テーブルを分
けて、親テーブルに子テーブルのtableIdを格納す
るColumnを設ける
• 無論、関連情報は自分で更新する、制約がは
れるわけではない
テーブル間の外部参照
24
• A案)子テーブルに親テーブルレコードの
ROWIDを格納するColumnを設ける
テーブル間の外部参照
25
ROWID
1
2
ROWID PARENT_ROWID
1 1
2 1
3 2
4 2
親テーブル 子テーブル
• B案)親テーブルのレコード毎に子テーブ
ルを分けて、親テーブルに子テーブルの
tableIdを格納するColumnを設ける
テーブル間の外部参照
26
ROWID CHILD_TABLE_ID
1 XXX
2 YYY ROWID
1
2
親テーブル
子テーブル(tableId=XXX)
ROWID
1
2
子テーブル(tableId=YYY)
大量なテーブル生成は大量なImportを必要とする
503発生の原因になりやすいので注意する
タイムアウト
• クライアントタイムアウト値は最低でも
60秒くらいは必要
– HttpClientなどを利用しているとタイムアウト
値が短かったりするので長めに設定すること
27
HTTP 503との闘い
• HTTP 503:Service Unavailable
– 裏でナニかが起きた
– ナニ
• 高頻度のアクセスによるブロック
• Select rowでROWIDでorder by
• Select rowでROWID = 0
• Fusion Tables自体の不具合(たぶん)
• など
28
アクセス制限
• Google APIs console
• 制限はこれだけではない
– 上限に関して明確には規定されていない
• 問合せても回答がもらえない
– 特にImport rowsで発生しやすい
• 例)Import rowsをスリープなしで18回繰り返すと発生
– 復旧
• まる1日制限されたり、数分で復旧したり、とにかくよくわ
からない
– 影響範囲
• ユーザ単位
29
誰かに質問したい時は
• 技術的な質問はStackoverflowを使うこと
• Google GroupのFusion Tables APIグループは
技術以外に関するディスカッションの場
という位置づけ
– 誤って質問を投げてしまうと、ディスカッ
ションの途中で「Stackoverflowに行け!」と
言われて議論はウヤムヤになる
30
Stackoverflowへ質問する時
• 503が発生した時の質問方法
• 以下の2点を質問内容に含めておくと回答
が得られやすい
– どういうリクエストを投げたのか?
– 具体的なレスポンスのBody(JSON)
• Try it!を使うとわりと便利
– https://developers.google.com/fusiontables/docs/
v1/reference/query/sqlGet#try-it
• 「503起きた-!」だけでは何も伝わらな
い
31
Try it!
32

Weitere ähnliche Inhalte

Andere mochten auch

正規表現勉強会
正規表現勉強会正規表現勉強会
正規表現勉強会zaru sakuraba
 
エンジニアでもできる⁉︎それっぽいデザイン
エンジニアでもできる⁉︎それっぽいデザインエンジニアでもできる⁉︎それっぽいデザイン
エンジニアでもできる⁉︎それっぽいデザインshinta rock
 
WEBページを表示するまで
WEBページを表示するまでWEBページを表示するまで
WEBページを表示するまでShoichi Kakizaki
 
アプリデザインのお勉強 UI/UXのお話
アプリデザインのお勉強 UI/UXのお話アプリデザインのお勉強 UI/UXのお話
アプリデザインのお勉強 UI/UXのお話shinta rock
 
少し未来のコードレビュー
少し未来のコードレビュー少し未来のコードレビュー
少し未来のコードレビューzaru sakuraba
 
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへアプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへTomohiro Yamasaki
 
ほんわかSwift勉強資料
ほんわかSwift勉強資料ほんわかSwift勉強資料
ほんわかSwift勉強資料kouhei kawamata
 
非エンジニア向けHTML勉強会その1
非エンジニア向けHTML勉強会その1非エンジニア向けHTML勉強会その1
非エンジニア向けHTML勉強会その1Karino Kyohei
 
0528 kanntigai ui_ux
0528 kanntigai ui_ux0528 kanntigai ui_ux
0528 kanntigai ui_uxSaori Matsui
 

Andere mochten auch (9)

正規表現勉強会
正規表現勉強会正規表現勉強会
正規表現勉強会
 
エンジニアでもできる⁉︎それっぽいデザイン
エンジニアでもできる⁉︎それっぽいデザインエンジニアでもできる⁉︎それっぽいデザイン
エンジニアでもできる⁉︎それっぽいデザイン
 
WEBページを表示するまで
WEBページを表示するまでWEBページを表示するまで
WEBページを表示するまで
 
アプリデザインのお勉強 UI/UXのお話
アプリデザインのお勉強 UI/UXのお話アプリデザインのお勉強 UI/UXのお話
アプリデザインのお勉強 UI/UXのお話
 
少し未来のコードレビュー
少し未来のコードレビュー少し未来のコードレビュー
少し未来のコードレビュー
 
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへアプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ
 
ほんわかSwift勉強資料
ほんわかSwift勉強資料ほんわかSwift勉強資料
ほんわかSwift勉強資料
 
非エンジニア向けHTML勉強会その1
非エンジニア向けHTML勉強会その1非エンジニア向けHTML勉強会その1
非エンジニア向けHTML勉強会その1
 
0528 kanntigai ui_ux
0528 kanntigai ui_ux0528 kanntigai ui_ux
0528 kanntigai ui_ux
 

Ähnlich wie Google fusion tables api v1.0 tips rev2

Twilio API を PHP で触ってみよう
Twilio API を PHP で触ってみようTwilio API を PHP で触ってみよう
Twilio API を PHP で触ってみようMasashi Shinbara
 
re:Inventで発表された新サービス「Config Rules」の可能性
re:Inventで発表された新サービス「Config Rules」の可能性re:Inventで発表された新サービス「Config Rules」の可能性
re:Inventで発表された新サービス「Config Rules」の可能性morisshi
 
MariaDB meetup Tokyo 2019 #01
MariaDB meetup Tokyo 2019 #01MariaDB meetup Tokyo 2019 #01
MariaDB meetup Tokyo 2019 #01GOTO Satoru
 
20140628 AWSの2014前半のアップデートまとめ
20140628 AWSの2014前半のアップデートまとめ20140628 AWSの2014前半のアップデートまとめ
20140628 AWSの2014前半のアップデートまとめYasuhiro Araki, Ph.D
 
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010Nobuaki Oshiro
 
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Yahoo!デベロッパーネットワーク
 
Redisへと至る、gumiデータストアの歴史
Redisへと至る、gumiデータストアの歴史Redisへと至る、gumiデータストアの歴史
Redisへと至る、gumiデータストアの歴史知教 本間
 
Azure Serverless or Power Platform 〜 あなたならどっち?! - Azure Serverless 編
Azure Serverless or Power Platform 〜 あなたならどっち?! - Azure Serverless 編Azure Serverless or Power Platform 〜 あなたならどっち?! - Azure Serverless 編
Azure Serverless or Power Platform 〜 あなたならどっち?! - Azure Serverless 編Kazumi IWANAGA
 
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??griddb
 
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話SORACOM,INC
 
さくらのインフラコード
さくらのインフラコードさくらのインフラコード
さくらのインフラコードYukihiko SAWANOBORI
 
AWSが誕生するまでの秘話
AWSが誕生するまでの秘話AWSが誕生するまでの秘話
AWSが誕生するまでの秘話Yasuhiro Horiuchi
 
20100930 sig startups
20100930 sig startups20100930 sig startups
20100930 sig startupsIchiro Fukuda
 
serverless framework + AWS Lambda with Python
serverless framework + AWS Lambda with Pythonserverless framework + AWS Lambda with Python
serverless framework + AWS Lambda with Pythonmasahitojp
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905Nobuaki Oshiro
 
Vsug day 2010 summer windows azure でやってみよう
Vsug day 2010 summer windows azure でやってみようVsug day 2010 summer windows azure でやってみよう
Vsug day 2010 summer windows azure でやってみようmizusawa
 
Programming AWS with Python
Programming AWS with Python  Programming AWS with Python
Programming AWS with Python Yasuhiro Matsuo
 
EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016Chihiro Adachi
 

Ähnlich wie Google fusion tables api v1.0 tips rev2 (20)

Twilio API を PHP で触ってみよう
Twilio API を PHP で触ってみようTwilio API を PHP で触ってみよう
Twilio API を PHP で触ってみよう
 
re:Inventで発表された新サービス「Config Rules」の可能性
re:Inventで発表された新サービス「Config Rules」の可能性re:Inventで発表された新サービス「Config Rules」の可能性
re:Inventで発表された新サービス「Config Rules」の可能性
 
MariaDB meetup Tokyo 2019 #01
MariaDB meetup Tokyo 2019 #01MariaDB meetup Tokyo 2019 #01
MariaDB meetup Tokyo 2019 #01
 
20140628 AWSの2014前半のアップデートまとめ
20140628 AWSの2014前半のアップデートまとめ20140628 AWSの2014前半のアップデートまとめ
20140628 AWSの2014前半のアップデートまとめ
 
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
 
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
 
Redisへと至る、gumiデータストアの歴史
Redisへと至る、gumiデータストアの歴史Redisへと至る、gumiデータストアの歴史
Redisへと至る、gumiデータストアの歴史
 
Azure Serverless or Power Platform 〜 あなたならどっち?! - Azure Serverless 編
Azure Serverless or Power Platform 〜 あなたならどっち?! - Azure Serverless 編Azure Serverless or Power Platform 〜 あなたならどっち?! - Azure Serverless 編
Azure Serverless or Power Platform 〜 あなたならどっち?! - Azure Serverless 編
 
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
 
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話
 
さくらのインフラコード
さくらのインフラコードさくらのインフラコード
さくらのインフラコード
 
AWSが誕生するまでの秘話
AWSが誕生するまでの秘話AWSが誕生するまでの秘話
AWSが誕生するまでの秘話
 
JAWS DAYS 2015
JAWS DAYS 2015JAWS DAYS 2015
JAWS DAYS 2015
 
20100930 sig startups
20100930 sig startups20100930 sig startups
20100930 sig startups
 
serverless framework + AWS Lambda with Python
serverless framework + AWS Lambda with Pythonserverless framework + AWS Lambda with Python
serverless framework + AWS Lambda with Python
 
PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
 
Vsug day 2010 summer windows azure でやってみよう
Vsug day 2010 summer windows azure でやってみようVsug day 2010 summer windows azure でやってみよう
Vsug day 2010 summer windows azure でやってみよう
 
Programming AWS with Python
Programming AWS with Python  Programming AWS with Python
Programming AWS with Python
 
EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016
 

Mehr von Wataru Sato

SendGridにおけるStopLightを 活用したAPI管理
SendGridにおけるStopLightを 活用したAPI管理SendGridにおけるStopLightを 活用したAPI管理
SendGridにおけるStopLightを 活用したAPI管理Wataru Sato
 
SendGrid Night in Fukuoka #1
SendGrid Night in Fukuoka #1SendGrid Night in Fukuoka #1
SendGrid Night in Fukuoka #1Wataru Sato
 
戦車乗りもmBaaSでメール送信できるかもしれない件
戦車乗りもmBaaSでメール送信できるかもしれない件戦車乗りもmBaaSでメール送信できるかもしれない件
戦車乗りもmBaaSでメール送信できるかもしれない件Wataru Sato
 
Mashup Hackathon 名古屋 MA11
Mashup Hackathon 名古屋 MA11Mashup Hackathon 名古屋 MA11
Mashup Hackathon 名古屋 MA11Wataru Sato
 
インテル® Edison ボード ハッカソン東京
インテル® Edison ボード ハッカソン東京インテル® Edison ボード ハッカソン東京
インテル® Edison ボード ハッカソン東京Wataru Sato
 
MA10 Mashup hackathon 北陸 in 福井 2014/08/30~31
MA10 Mashup hackathon 北陸 in 福井 2014/08/30~31MA10 Mashup hackathon 北陸 in 福井 2014/08/30~31
MA10 Mashup hackathon 北陸 in 福井 2014/08/30~31Wataru Sato
 
勉強会:設定管理について
勉強会:設定管理について勉強会:設定管理について
勉強会:設定管理についてWataru Sato
 
Heroku × SendGridイベント管理
Heroku × SendGridイベント管理Heroku × SendGridイベント管理
Heroku × SendGridイベント管理Wataru Sato
 
デ部15 step counter step detector
デ部15 step counter step detectorデ部15 step counter step detector
デ部15 step counter step detectorWataru Sato
 
SendGrid Parse APIをデモってみる
SendGrid Parse APIをデモってみるSendGrid Parse APIをデモってみる
SendGrid Parse APIをデモってみるWataru Sato
 

Mehr von Wataru Sato (10)

SendGridにおけるStopLightを 活用したAPI管理
SendGridにおけるStopLightを 活用したAPI管理SendGridにおけるStopLightを 活用したAPI管理
SendGridにおけるStopLightを 活用したAPI管理
 
SendGrid Night in Fukuoka #1
SendGrid Night in Fukuoka #1SendGrid Night in Fukuoka #1
SendGrid Night in Fukuoka #1
 
戦車乗りもmBaaSでメール送信できるかもしれない件
戦車乗りもmBaaSでメール送信できるかもしれない件戦車乗りもmBaaSでメール送信できるかもしれない件
戦車乗りもmBaaSでメール送信できるかもしれない件
 
Mashup Hackathon 名古屋 MA11
Mashup Hackathon 名古屋 MA11Mashup Hackathon 名古屋 MA11
Mashup Hackathon 名古屋 MA11
 
インテル® Edison ボード ハッカソン東京
インテル® Edison ボード ハッカソン東京インテル® Edison ボード ハッカソン東京
インテル® Edison ボード ハッカソン東京
 
MA10 Mashup hackathon 北陸 in 福井 2014/08/30~31
MA10 Mashup hackathon 北陸 in 福井 2014/08/30~31MA10 Mashup hackathon 北陸 in 福井 2014/08/30~31
MA10 Mashup hackathon 北陸 in 福井 2014/08/30~31
 
勉強会:設定管理について
勉強会:設定管理について勉強会:設定管理について
勉強会:設定管理について
 
Heroku × SendGridイベント管理
Heroku × SendGridイベント管理Heroku × SendGridイベント管理
Heroku × SendGridイベント管理
 
デ部15 step counter step detector
デ部15 step counter step detectorデ部15 step counter step detector
デ部15 step counter step detector
 
SendGrid Parse APIをデモってみる
SendGrid Parse APIをデモってみるSendGrid Parse APIをデモってみる
SendGrid Parse APIをデモってみる
 

Google fusion tables api v1.0 tips rev2