Ich kann eine Verbindung zu Gmail api, & können Etiketten lesen. Aber wenn ich Nachrichten lesen versucht, ich habe einen Fehler 403 (ListMessagesResponse listMessageResponse = service.users().messages().list("me").execute()
)GmailApi lesen ungelesene Nachrichten
`{
"code" : 403,
"errors" : [ {
"domain" : "global",
"message" : "Insufficient Permission",
"reason" : "insufficientPermissions"
} ],
"message" : "Insufficient Permission"
}`
Mein Code für das Erhalten Service:
`final String CLIENT_ID = "////";
final String CLIENT_SECRET = "///////";
final String APPLICATION_NAME = "///////////////";
final String REFRESH_TOKEN = "////////////////";
final java.io.File DATA_STORE_DIR = new java.io.File("/", "");
FileDataStoreFactory DATA_STORE_FACTORY;
final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
final List<Set<String>> SCOPES = Arrays.asList(GmailScopes.all());
HttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
DATA_STORE_FACTORY = new FileDataStoreFactory(DATA_STORE_DIR);
Credential credential = new GoogleCredential.Builder()
.setClientSecrets(CLIENT_ID, CLIENT_SECRET)
.setJsonFactory(JSON_FACTORY).setTransport(HTTP_TRANSPORT).build()
.setRefreshToken(REFRESH_TOKEN);
credential.refreshToken();
return new Gmail.Builder(
HTTP_TRANSPORT, JSON_FACTORY, credential)
.setApplicationName(APPLICATION_NAME)
.build();`
Und mein Code für Nachrichten erhalten (i alle ungelesenen Nachrichten erhalten möchten, und speichern Sie Anhänge)
`ListMessagesResponse listMessageResponse = service.users().messages()
.list("me").execute();
List<Message> list = listMessageResponse.getMessages();
for (Message mess : list) {
System.out.println(mess.getRaw());
}`
Nein, ich habe bereits autorisieren. Ich verwende gespeicherte Anmeldeinformationen –