gmailのメール取得の準備

muramatsu 76views 更新:2016年12月14日

必要なもの
Google アカウント
curl コマンド(ない場合は linux の場合は yum install curl とかで引っ張ってこれると思います)

環境
OS Linux

やり方

1.メールを取得したいgoolgeアカウントして以下のwebページに飛ぶ

https://code.google.com/apis/console/

2.ページに飛ぶとプロジェクトを作るよう言われるのでプロジェクトを作る
プロジェクト名を任意に決めて下の詳細情報のタブから App Engineのリージョンが選択できるので asia-northeast1 とかする。
3.作成ボタンを押すと認証設定をしてくださいとか言われるので認証を作る(言われない場合も認証情報のタグから作る必要があります)
API認証情報のポップから認証情報を作成を押すと認証方式が聞かれるので OAuth クライアント ID を選択する。
4.OAuth 同意画面を設定してくださいとか言われるので設定する
OAuth 同意画面では最低ユーザーに表示するサービス名だけを任意に入れて保存で大丈夫です(メールアドレスはすでに入力されていると思います)
5.クライアント IDの作成
同意画面を設定するとアプリケーションの種類を聞かれるので好きな項目にチェックして名前などを設定して作成
6.OAuth クライアントのクライアントIDとクライアントシークレットが表示されるのでどちらも重要なのでメモに書いたりして保存しておく
7.Google MAILのAPIのライブラリ認証をしておく
ライブラリからGmail APIを選択してGmail API と言うタイトルの横に 有効にする とか欄があるのでクリック
8.ウェブページから認証情報を通す
以下のURLに飛んで認証情報を通します。

https://accounts.google.com/o/oauth2/auth

?client_id=#{クライアントID}
&redirect_uri=#{リダイレクトURI}
&scope=#{スコープ(要するにどこまでに許可をするか)}
&response_type=code
&approval_prompt=force
&access_type=offline
リダイレクトURIについては設定されてない場合は

https://console.developers.google.com/apis

の認証情報からプロジェクト名を選んでその右側にある編集マークから 承認済みのリダイレクト URI の欄で任意に設定できます(おすすめはhttp://localhost )
スコープに関しては

https://developers.google.com/gmail/api/auth/scopes?hl=ja-JP

から好きなものを
全権限だったら scope=https://mail.google.com/ となる思います。
URLの例

https://accounts.google.com/o/oauth2/auth?client_id=#{クライアントID}&redirect_uri=http://localhost&scope=https://mail.google.com/&response_type=code&approval_prompt=force&access_type=offline

という感じでそのページに飛びます
9.ページに飛んでcode取得
ページに飛ぶとscopeでの権限に対して認証しますか?と聞かれるので認証するクリック
するとgoogle側から

http://localhost/?code= ~

という感じでリダイレクトされるのでウェブページのURLから code= 以下の文字列をメモ書きしておく
このcode=以下の文字列が認証コードです
10.accessトークン取得
端末から以下のコマンドでアクセストークンとフレッシュトークンを取得する
curl -d client_id=#{クライアントID} -d client_secret=#{クライアントシークレット} -d redirect_uri=#{リダイレクトURI} -d grant_type=authorization_code -d code=#{認証コード} https://accounts.google.com/o/oauth2/token
これでアクセストークンを取得できたのでgoogleメールの取得の準備は完了です。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません