Help us understand the problem. What is going on with this article?

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の中身?をみるとメールアドレスとかも書いてあって注意が必要そう…
かなり簡単にできるから軽い対応表くらいならすぐできそう!
もちろん編集も簡単!
認証とかすればもっといい感じに使えるのかな。

参考

asteria
データ連携ソフトのASTERIA Warp、コンテンツ管理システムのHandbook、モバイルアプリ作成サービスPlatio、AI/IoTのエッジウェアGravioなどを開発しています
https://asteria.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away