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

ElixirでGoogle APIを使う

More than 1 year has passed since last update.

ElixirからGoogle APIを使った。
ライブラリがSwaggerをつかってコード生成されてることもあってか使い方が初見殺しなのでメモ残しておく。

具体的なほうがわかりやすいので、Spreadsheetを例にする。

SpreadsheetのAPIを使いたい場合はgoogle_api_sheetsを使うことになる。APIごとにgoogle_api_xxxが存在します。

ドキュメントは下記URLで閲覧することができるが、初見はどこからみればいいのか大変わかりづらいです。
https://hexdocs.pm/google_api_sheets/api-reference.html

まず先に、Google Sheetsの開発者ドキュメントを眺めたほうが良いです。
IDの確認方法や必要な概念の説明どが書かれているのでサラッと確認しておくほうが良いです。

APIの一覧が確認したいならこちら。

このAPIと対応するものが、APIモジュール内で提供されている。
Sheetsの場合はGoogleApi.Sheets.V4.Api.Spreadsheetsとなる。

Spreadsheetで最初によくつかいたくなるのは読み込みだと思う。
読み込みはspreadsheets.values.getを用いる。

https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/get

対応する関数は sheets_spreadsheets_values_get/4になる。
https://hexdocs.pm/google_api_sheets/GoogleApi.Sheets.V4.Api.Spreadsheets.html#sheets_spreadsheets_values_get/4

第一引数のConnectionはGoogleApi.Sheets.V4.Connectionである。API毎にあります。
https://hexdocs.pm/google_api_sheets/GoogleApi.Sheets.V4.Connection.html#content

作成方法は、new/0new/1を使って作ります。

new/1の引数tokenはGothを用いて生成することになります。
Gothの詳細は省く。

elixir-google-apiの情報も役に立つと思います。
https://github.com/googleapis/elixir-google-api

具体例

configにGothの設定が必要ですが、下記のコードで取得できるはずです。

def get() do
  alias GoogleApi.Sheets.V4.Connection
  import GoogleApi.Sheets.V4.Api.Spreadsheets

  {:ok, token} = Goth.Token.for_scope("https://www.googleapis.com/auth/spreadsheets.readonly")
  conn = Connection.new(token.token)  # token.token を渡す点に少し注意
  sheetID = "XXXXX" # 自分で用意してください
  range = "A1:A2000" # A列を20000行まで(2000行までなくても値があるところまでとれる)
  sheets_spreadsheets_values_get(conn, sheetID, "A1:A2000")
end
get()
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした