Google app scriptを利用するパターン
- メリット
- Google app scriptを利用すると、JS-like にかけて、認証も必要ない
- デメリット
- 外部ライブラリを読み込めない
- 参考
Google APIからFusion Tablesを操作するパターン
設定
-
selectは、GETするだけで簡単にとってこれる
https://www.googleapis.com/fusiontables/v2/query?sql=SELECT * FROM {Fusion tales id}&key={your API key}
- 公式ドキュメント
-
insertとdeleteは認証が必要
-
管理画面からOAuthクライアントを作成してJsonをダウンロード
-
Fusion Tablesの共有設定から、APIのemailに対して権限を追加する必要がある。
Node
-
$ npm install googleapis --save
-
コードはここを参考にした。
var google = require('googleapis');
var fusiontables = google.fusiontables('v2');
var key = require('./管理画面からとってきたOAuth情報.json');
fusion_table_id = "Fusion tablesのID"
// クエリはここ
insert_sql = "INSERT INTO " + fusion_table_id
insert_sql += " (column_name1, column_name2, column_name3) "
insert_sql += "VALUES (111,222,333)"
var jwtClient = new google.auth.JWT(
key.client_email,
null,
key.private_key,
['https://www.googleapis.com/auth/fusiontables', 'https://www.googleapis.com/auth/fusiontables'],
null
);
jwtClient.authorize(function (err, tokens) {
if (err) {
console.log(err);
return;
}
fusiontables.query.sql({
auth: jwtClient,
sql:insert_sql,
key: '<api-key>'
}, function (err, res) {
if (err) {
console.log(err);
}
else {
console.log(res);
}
});
});
Python(認証なしパターン)
import urllib.request
fusion_tables_id = "<fusion-tables-id>"
api_key = "<api-key>"
sql = "SELECT * FROM "+fusion_tables_id+"&key="+api_key
url = "https://www.googleapis.com/fusiontables/v2/query?sql="+urllib.parse.quote(sql,safe='*&=')
print(url)
webURL=urllib.request.urlopen(url).read()
data = webURL.read()
encoding = webURL.info().get_content_charset('utf-8')
JSON_object = json.loads(data.decode(encoding))
-
urllib.parse.quote
はsafe
というパラメータでquoteしない文字を指定できる -
jsonでload
https://stackoverflow.com/questions/32795460/loading-json-object-in-python-using-urllib-request-and-json-modules
参考