Google API の OAuth2 認証で Refresh token を取得するには

とあるサイトの 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 が発行されるはずです。