OAuth2
最近は仕事が落ち着いていて、これまでやりたかったスカンクワークに手を出しまくっている。 そのなかでGoogle API、とくにSheets APIを使ってみたくて、何度も転びながら最後にはcurlでシートを操作することができるようになった。パチパチ(昔読んでいた森博嗣の日記を思い出した。この擬音語、今も使うのだろうか)。
何が難しかったかというと「認証」で、恥ずかしながらこれまでまったく勉強したことがなかった。とくにOAuthは触れたことがなくて、今回の遊びではじめて認可コード、アクセストークン、リフレッシュトークンの意味合いを掴みはじめたところだ。
以下、正確ではないことを承知で残しておく。
そもそもOAuthを使う背景は、自分が持つ権限をアプリケーションに「移譲」することである。外部のアプリケーションがGoogleのサービスに対してなにか操作をする場合に必要となる。
APIを操作するにはアクセストークンが必要となる。Googleでは、アクセストークンを入手するには2種類の方法がある。
- ユーザが直接承認することで取得した承認コード(認可コード、authorization_code)を使って取得する
- 1の方法で合わせて取得しているリフレッシュトークン(更新トークン)を使って取得する
簡単なイメージとしては、はじめての実行には1が必要だ。しかしアクセストークンはすぐに利用できなくなってしまうので、新しいアクセストークンを取得しなければならず、毎回ユーザの承認をして認可コードを取得するのは面倒だ。
そこでもしリフレッシュトークンを取得済であれば、ユーザの操作をスキップしてアプリケーションとAPIだけでアクセストークンの再取得ができるのである。
今回はGoogleで試していたが、個人ではTwitterのOAuthも触ってみれればと思う。これは先の話かな。
---グリーンベイ・パッカーズのブログ用に、先日のシーホークス戦のふりかえりとチャンピオンシップで戦う49ers戦のプレビューを書いている。 プレビューのためにWeek12の49ers戦も見返したが、やはり圧倒的に負けていて、正直いって勝ち目が見当たらない。
何度もフィルムを止めたりしながら見て感じたのは、とにかく相手のディフェンスラインが強いこと。
真正面からの攻略は難しいのでクイックスクリーンやエンドアラウンドなどでサイドを突きたいが、これも結構な頻度で止められていた。
ほかのプレビューではどう語られるのか楽しみにしつつ、早めに自分の感想を書かないと。