Gmail APIを試してみようと思ったら最初にサンプルにあるQuick Startを実装してみてラベルの一覧を出してみると思います。
そのあと、メッセージの一覧を取得しようということになると思いますが、
私の様によく考えないで最短距離を行こうとするとこのメッセージでエラーになります。
チュートリアルにはGoogle APIで権限の設定について
手取り足取り書いてくれていないので、
これを説明しておいて欲しかったということを下記に。
Quick Startサンプルではこうなっていると思います。
/** Directory to store user credentials for this application. */
そのあと、メッセージの一覧を取得しようということになると思いますが、
私の様によく考えないで最短距離を行こうとするとこのメッセージでエラーになります。
Exception in thread "main" com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
"code" : 403,
"errors" : [ {
"domain" : "global",
"message" : "Insufficient Permission",
"reason" : "insufficientPermissions"
} ],
"message" : "Insufficient Permission"
}
チュートリアルにはGoogle APIで権限の設定について
手取り足取り書いてくれていないので、
これを説明しておいて欲しかったということを下記に。
Quick Startサンプルではこうなっていると思います。
/** Global instance of the scopes required by this quickstart.
*
* If modifying these scopes, delete your previously saved credentials
* at ~/.credentials/gmail-java-quickstart
*/
private static final List SCOPES =
Arrays.asList(GmailScopes.GMAIL_LABELS);
これを以下の様に
private static final List SCOPES =
Arrays.asList(GmailScopes.GMAIL_READONLY);
あるいはこんな風に
private static final List SCOPES =
Arrays.asList(GmailScopes.MAIL_GOOGLE_COM);
これでMessageにアクセスする権限がつく筈ですが、
Quick Startのソースを流用して作成していると上手く行きません。
実は下記のパスに権限情報のファイルをキャッシュしているので、
このファイルを削除してクリアするか、
ファイルのパスをQuick Startのものから変更しないといけません。
/** Directory to store user credentials for this application. */
private static final java.io.File DATA_STORE_DIR = new java.io.File(System.getProperty("user.home"),
".credentials/gmail-java-quickstart");
以上でQuick Startサンプルからの修正で
No comments:
Post a Comment