Google API の OAuth2 認証で Refresh token を取得するには[プログラミング]
(2014-05-09 19:02:26) by 太鉄


とあるサイトの PV を API 経由で Google Analytics から取ってきたいと思い、以下のサイトを参考にスクリプトを書きました。

が、初っ端の Token 取得するところで Refresh token が返ってきません。

Access token:  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Refresh token: 

何故か Refresh token のところに何も表示されないんですね。
前にも同じような問題にハマったんだけど、放置してたなぁなどと思いつつ、少し調べると以下のサイトに当たりました。

認証用のURLに、以下のパラメータを追加しろとのこと。

approval_prompt=force : 認可画面をスキップさせない。
access_type=offline : オフラインでAPIを使う(=refresh_tokenも発行してもらう)。

で、無事に Refresh token が取得されてめでたしめでたしなんですが、こんなパラメータを追加しなくても Refresh token は取得できるよ、と教えてもらったのでその方法をご紹介(ここまでが前振り)。

そもそも Google Developers Console で Client ID を生成する際に、然るべき項目を選択すれば良いとのこと。

<画像:01.png>

「CREATE NEW CLIENT ID」の赤いボタンをクリック。

<画像:02.png>

Application Type に Installed Application を、Installed Application Type に Other を選択し Create Client ID の青いボタンをクリック。

<画像:03.png>

Redirect URIs に urn で始まる値が設定されます。

<画像:04.png>

この Client ID を使用して生成された認証用の URL にアクセスすると、まず認証画面が表示され、そこで「承認する」の青いボタンをクリックすると、

<画像:05.png>

コードが発行されます。これを「Enter code: 」のプロンプトに入力すれば、Refresh token が発行されるはずです。

Tags: google api, oauth, perl


コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.1