Ошибка 403 при вызове gmail watch API в java
Получение приведенной ниже ошибки при вызове gmail Watch API с помощью Google SDK в java
Исключение в ветке "main" com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Запрещено { "code": 403, "errors": [ { "domain": "global", "message": "Ошибка отправки тестовое сообщение в проекты Cloud PubSub /proj/themes/inbox-change: пользователь не авторизован для выполнения этого действия.", " причина ":" запрещено " } ], " сообщение ":" ошибка отправки тестового сообщения в проекты Cloud PubSub /proj/themes/inbox-change: пользователь не авторизован для выполнения этого действия." }
Ниже приведен код, которому я звоню
public static Credential authorizeGoogleCredentialJSON() throws IOException {
InputStream resourceAsStream = GSuiteUtil.class.getClassLoader().getResourceAsStream("client_secret.json");
GoogleCredential gcFromJson = GoogleCredential.fromStream(resourceAsStream, HTTP_TRANSPORT, JSON_FACTORY).createScoped(SCOPES); return new GoogleCredential.Builder()
.setTransport(gcFromJson.getTransport())
.setJsonFactory(gcFromJson.getJsonFactory())
.setServiceAccountId(gcFromJson.getServiceAccountId())
.setServiceAccountUser(SERVICE_ACCOUNT_USER)
.setServiceAccountPrivateKey(gcFromJson.getServiceAccountPrivateKey())
.setServiceAccountScopes(gcFromJson.getServiceAccountScopes())
.build();
}
public static Gmail getGmailService() throws IOException {
Credential credential = authorizeGoogleCredentialJSON();
return new Gmail.Builder(
HTTP_TRANSPORT, JSON_FACTORY, credential)
.setApplicationName(APPLICATION_NAME)
.build();
}
public static void main(String[] args) throws IOException {
// Build a new authorized API client service.
Gmail gmail = getGmailService();
WatchRequest request = new WatchRequest();
request.setTopicName("projects/proj/topics/inbox-changed");
WatchResponse response= gmail.users().watch( "me", request).execute();
System.out.println(response.getExpiration());
System.out.println(response.getHistoryId());
}
У меня есть темы, настроенные в консоли.