シンプルだけど部分的に悩んだので..
GET と POST が出来ればいいので、プログラミング言語とかも考えなくていい
変数は $変数 として表記する
例 : トークンをコンソールに表示する時
println($token);
てな感じ
まず例として、以下のエンドポイントがあるとする (URLはダミー)
認証URL : https://nuko.in/oauth/authorize
トークンURL : https://nuko.in/oauth/token
あとコールバック
https://nuko.in/oauth/callback
※ 返ってきた時の $URL?code=$ここ ←が取れればいいからお好きにどうぞ
リダイレクトのURLを取れるなら楽勝ですね。
$code = replace($URL + “?code=”, “”); みたいなことをすればいいです。
あと、一応scopeも使ってみます。 使わない時はその部分がなくてもいいと思う
scope は とりあえず read にします。
あと、認証用のクライアントIDとクライアントSecretは既に取得していることとする。
今回は適当に…
ここまでを踏まえて、これから登場するダミー変数
$認証URL -> https://nuko.in/oauth/authorize
$トークンURL -> https://nuko.in/oauth/token
$コールバックURL -> https://nuko.in/oauth/callback
$クライアントID -> ihg23iggaej21j1k
$クライアントSecret -> gjo14ng23lll
$スコープ -> read
これから出現
$コード
$アクセストークン
- まずはアクセストークンをもらうためのトークンをもらう
- アクセストークンを取得
先ほどの、 $認証URL に対して以下のアクセスを試みる
・メソッド GET
・パラメータ
client_id=$クライアントID
redirect_uri=$コールバックURL
response_type=code
scope=$スコープ
全部展開するとこんな感じでしょうか
client_id=ihg23iggaej21j1k&redirect_uri=https://nuko.in/oauth/callback&response_type=code&scope=read
さらにURLエンコードして結合します
client_id%3dihg23iggaej21j1k%26redirect_uri%3dhttps%3a%2f%2fnuko%2ein%2foauth%2fcallback%26response_type%3dcode%26scope%3dread
↓
https://nuko.in/oauth/authorize?client_id=ihg23iggaej21j1k&redirect_uri=https://nuko.in/oauth/callback&response_type=code&scope=read
ここにアクセスを行い、成功すると コード付きでリダイレクトされます
例 https://nuko.in/oauth/callback?code=14827890
ここから変数が
$コード -> 14827890 になります。
トークンURL に対して以下のアクセスを試みる
・メソッド POST
・パラメータ
client_id=$クライアントID
client_secret=$クライアントSecret
code=$コード
grant_type=authorization_code
redirect_uri=$コールバックURL
展開は省略します。
こうすると、多分アクセストークンが貰えると思います。
$アクセストークン -> 適当
あとは、 サイトと通信をする際のヘッダに
Authorization: OAuth2 $アクセストークン
とかで基本的にはいけますね。
細かい箇所はその度に更新します