今、inoreaderを使ってデータをあれこれするためにinoreader APIについて調べているんだけど・・・・・
いかんせん情報が少ない!!
('ω')「gemがあるから余裕っしょ」
って思っていたら古くて、認証部分でこけてて使いこなせなかった(実は使えるのかもしれないけど)。コピペプログラマによくありがちなダメっぷりですorz
先人の知識は本当、感謝しかない。(´;ω;`)
だが、今回は自分で頑張るしかないので、先人の知識を借りつつ自力で調べて行くことに。
で、内容を覚書として書いておく。
とりあえずおおもとの情報
それがこちら。
Developer Portal: Authentication & API Methods | Inoreader - User authentication via OAuth 2.0
Oauthってよく聞くけどあまり使ったことないからいい機会かも。
OAuth 2.0 Playgroundでは動いた
Google先生のツール?なのかな?で試してみたら動いた。
ただ、注意点として以下。
- 「OAuth Client ID」には「AppId」を入力
- 「OAuth Client secret」には「AppKey」を入力
- 「Step 2Exchange authorization code for tokens」に進んだら速攻「Exchange authorization code for tokens」を押さないとAccess tokenがもらえない
- なんだかわからないけど「Access token」の有効期限が30分と短い
特に3番目の速攻押すってのがはまったww原文見ながらのらりくらりしていたからexpireしてて、「なんでだよ!!(怒」ってずっとモニターとお話ししていました。
そしてscope。「read」とか「read write」とかを指定するんだけど、「read write」の場合は「read%20write」とURLをエンコードしてやらないといけない。
Oauthについて参考にしたHP
先人たちの知識、参考にさせていただいてます。
Google APIのAccess Tokenをお手軽に取得する - Qiita
このページですごく理解が進んだ。
順番的に
- ClientID、Client_secretを使って許可画面のURLを作る
- 許可画面のURLの中にAuthorization codeがあるので、それを使ってAccess tokenとrefresh tokenを交換する
という理解に至った。
いろいろなサービスのAPIをcurlで叩くときの認証の扱い - Qiita
curlコマンドでHTTPヘッダを扱うレシピ - Qiita
curlだけでできないかなーと思ってたどり着いたページ。
OAuth 2.0 の認可フローと oauth2 gem を使った Google APIs の利用 [Ruby] All About
フローの説明。一度読んだだけじゃ理解が追い付かなかったのでもっと読み込む必要あり。
まだまだ分からないことがいっぱい
30分で有効期限が切れちゃうとか、ブラウザがないといけないとか、その辺をどうにかしてCUIだけでできないか調べないと。先はまだまだ長いですけどとりあえず今まで調べたことを書いておいて、続きはこのページの情報を参考に進めていくつもりです。
奥が深いな~。認証関連は。それでは~。