GASでAPIを利用したい〜OAuthをPassするためのライブラリ〜

API関連
この記事は約4分で読めます。

久しぶりのGAS系の記事です。

GASでAPIを叩きたいという願望はみなさん多いと思います。取得したデータをスプレッドシートに吐き出したり、スプレッドシートのデータをAPI先へ送り込むなど、作業がイメージしやすいですよね。

でも、そんなAPIを使いたいという願望に障壁となってくるのが、アクセストークンの取得というAPIを使うための準備作業です。OAuthという認可のスキームを一般的なAPIでは利用しており、それを綺麗にPassできないとアクセストークンが取得できず、結果としてAPIの利用にたどり着けません。

そのため、今回はGASでAPIを使うためのライブラリを紹介していきます。

Advertisements

ノンプロが覚えておくOAuthの基本事項

さて、OAuthをPassしなきゃいけません、とは言いましたが、そもそもOAuthが何をしているのか、という点から理解することはノンプロ敵ではありません。(厳密に理解しようとすると難しいところもあるため)

そこで、ノンプロが覚えておくべきOAuthの基本的事項を考えてみましたが、以下かなぁと思います。

OAuthは1.0/ 1.0a/ 2.0の3つがあり、一般に使われているのは1.0もしくは2.0である

何が違うの?とかどういうことやってるの?っていう疑問も当然湧くかと思うのですが、先ほどもいった通りOAuth自体の内容を把握するのは一旦無視しましょう。あくまで目線はAPIを利用するために、OAuthをPassするという観点からみていくのがノンプロ向けです。

そして、各OAuthのバージョンに合わせたライブラリを利用して、難しい部分は全てライブラリに依存するのがベターかと思います。

OAuth2.0を採用されているAPIで利用するライブラリ

OAuth2.0を採用しているAPIでアクセストークンを取得する場合は以下のライブラリを利用しましょう。

googleworkspace/apps-script-oauth2
An OAuth2 library for Google Apps Script. Contribute to googleworkspace/apps-script-oauth2 development by creating an account on GitHub.

ライブラリをインポートする場合は、以下のスクリプトIDを指定してライブラリの追加をしてください。

1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF

今回は残念ながらライブラリの使い方までは説明していると長くなってしまうので、後日OAuth2.0のライブラリだけは解説記事を作ろうかなぁと思います。基本的に難しいことがわからない場合は、githubのsampleディレクトリに上がっているサンプルをまんま使うのがいいと思います。

OAuth2.0を利用しているAPI群

以下のようなサービスがOAuth2.0を採用しています。

  • DocuSign
  • FirebaseDB
  • DropBox
  • Facebook
  • freee
  • github
  • google
  • Line
  • salesforce
  • twitter
  • zendesk
  • zoom etc…

みなさんが使いたいようなAPIの多くはOAuth2.0を採用していると思います。

OAuth1.0を採用されているAPIで利用するライブラリ

OAuth1.0を採用しているAPIでアクセストークンを取得する場合は以下のライブラリを利用しましょう。

googleworkspace/apps-script-oauth1
An OAuth1 library for Google Apps Script. Contribute to googleworkspace/apps-script-oauth1 development by creating an account on GitHub.

ライブラリをインポートする場合は、以下のスクリプトIDを指定してライブラリの追加をしてください。

1CXDCY5sqT9ph64fFwSzVtXnbjpSfWdRymafDrtIZ7Z_hwysTY7IIhi7s

OAuth1.0を利用しているAPI群

以下のようなサービスがOAuth2.0を採用しています。

  • Jira
  • Twitter
  • Trello
  • yelp
  • evernote

だいぶ数は減ってきているのですが、OAuth1.0を採用しているAPIもまだまだあります。

EvernoteAPIに関する注意点

EvernoteAPIはauthorizeやrequest_token/access_tokenの取得のためのendpointが同一になっており、クエリで内容を指定する必要があり、GASでは少しハードルが高いので、pythonなどでSDKを利用するか、以下のURLから直接アクセストークンを発行することをお勧めします。

Get an Auth Token - Evernote Developers

まとめ

今回はGASでAPIを利用したい人向け(ノンプロオンリーです、プロは普通にやってください)に、OAuthでアクセストークンを取得するための基本を説明しました。

難しいところはライブラリに任せて、自分はやりたいところに集中するのがベターだと思います。ライブラリで対応できない形のOAuthを採用しているAPIは大体SDKなどの他の手段を提供しているので、そちらを使うことをお勧めします。

多分signitureとか真面目に考え始めてもハマるだけなので。。

コメント