OAuth2

最近は仕事が落ち着いていて、これまでやりたかったスカンクワークに手を出しまくっている。

そのなかでGoogle API、とくにSheets APIを使ってみたくて、何度も転びながら最後にはcurlでシートを操作することができるようになった。パチパチ(昔読んでいた森博嗣の日記を思い出した。この擬音語、今も使うのだろうか)。

何が難しかったかというと「認証」で、恥ずかしながらこれまでまったく勉強したことがなかった。とくにOAuthは触れたことがなくて、今回の遊びではじめて認可コード、アクセストークン、リフレッシュトークンの意味合いを掴みはじめたところだ。

以下、正確ではないことを承知で残しておく。


そもそもOAuthを使う背景は、自分が持つ権限をアプリケーションに「移譲」することである。外部のアプリケーションがGoogleのサービスに対してなにか操作をする場合に必要となる。

APIを操作するにはアクセストークンが必要となる。Googleでは、アクセストークンを入手するには2種類の方法がある。

  1. ユーザが直接承認することで取得した承認コード(認可コード、authorization_code)を使って取得する
  2. 1の方法で合わせて取得しているリフレッシュトークン(更新トークン)を使って取得する

簡単なイメージとしては、はじめての実行には1が必要だ。しかしアクセストークンはすぐに利用できなくなってしまうので、新しいアクセストークンを取得しなければならず、毎回ユーザの承認をして認可コードを取得するのは面倒だ。

そこでもしリフレッシュトークンを取得済であれば、ユーザの操作をスキップしてアプリケーションとAPIだけでアクセストークンの再取得ができるのである。

今回はGoogleで試していたが、個人ではTwitterのOAuthも触ってみれればと思う。これは先の話かな。


グリーンベイ・パッカーズのブログ用に、先日のシーホークス戦のふりかえりとチャンピオンシップで戦う49ers戦のプレビューを書いている。

プレビューのためにWeek12の49ers戦も見返したが、やはり圧倒的に負けていて、正直いって勝ち目が見当たらない。

何度もフィルムを止めたりしながら見て感じたのは、とにかく相手のディフェンスラインが強いこと。

真正面からの攻略は難しいのでクイックスクリーンやエンドアラウンドなどでサイドを突きたいが、これも結構な頻度で止められていた。

ほかのプレビューではどう語られるのか楽しみにしつつ、早めに自分の感想を書かないと。