OAuthの認可レスポンスを受け取る一時的なHTTPサーバー

動機

  • GoogleAPI やら SpotifyAPI やらを叩いて何らかの処理を自動化したりしたい(というかしている
  • この手の API は OAuth でリソースへのアクセスを認可していることが多い
  • 認可コードを受け取るための Web サーバーを書く(立てる)ほどでもないことがある
  • いちいちそのためのサーバーを書いたり、認可コードをコピペで貼り付けたりするのが面倒くさい
  • ので、認可レスポンスを受け取るためだけの一時的な HTTP サーバーを立てられたらいいと思った

補足説明

  • "localhost:8080/callback"宛に何らかの HTTP のリクエストが来たらクエリパラメーターを取り出し HTTP サーバーは即座に終了する

リポジトリ

stoneream/token-receiver

サンプルコード

token-receiver/Main.scala at main · stoneream/token-receiver

今後

  • アクセストークン・リフレッシュトークンを永続化する仕組み
  • オプション(一時サーバーのポート番号を指定したり)で色々指定できるようにする
  • 親切にエラーをハンドルする

その他

  • 認可リクエスト、アクセストークンリクエストはどこのサービスも同じような形をしている
  • ので、そのへんもうまく抽象化してやりたい
  • が、微妙に必須のパラメーターが違うのでやりづらい
  • ので、やってない