Edited at

GoogleSpreadsheetでAPIを使ってiOSアプリで使う

More than 3 years have passed since last update.


スプレッドシートを公開する


  1. googleSpreadsheetで適当なシートを作ります

    適当なシートをつくる


  2. ファイルからウェブに公開を選択

    ウェブに公開


  3. 公開する

    公開する


これで準備は完了!


APIのURL

https://spreadsheets.google.com/feeds/cells/[id]/[worksheetId]/public/values?alt=json

※[id]にはgooglespreadssheetのURLのd/のあとの部分がはいる

(https://docs.google.com/spreadsheets/d/[id]/edit#gid=0の[id]に対応)

※[worksheetId]には一枚目には od6 がはいる

2枚目以降はhttps://spreadsheets.google.com/feeds/worksheets/[id]/public/basic

を参照。


データを取得

適当にDictionaryや2次元配列を宣言しておく。

 //今回はDictionary型に保存する

var metroData = [String:String]()


let urlString = "https://spreadsheets.google.com/feeds/cells/[id]/od6/public/values?alt=json"
let url = NSURL(string: urlString)

//JSONを取得
let task = NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler:{data, response, error in
do {
let dict = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
let feed = dict["feed"] as! NSDictionary
let entries = feed["entry"] as! [NSDictionary]
var titleUrls = [String]()

//左上端が最初で、左→右の順で上から下まで配列に入っている
for entry in entries {
let content = entry["content"] as! NSDictionary
titles.append(content["$t"] as! String)
}

for var i = 0; i < titles.count; i = i + 2 {
self.metroData[titles[i]] = titles[i+1]
}
print(metroData)
} catch {
print("Error")
}
})
task.resume()
})

これで実行!

→コンソールに出力された!!

出力


注意点

APIの中身?をみるとメールアドレスとかも書いてあって注意が必要そう…

かなり簡単にできるから軽い対応表くらいならすぐできそう!

もちろん編集も簡単!

認証とかすればもっといい感じに使えるのかな。


参考