Ошибка 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());
}

У меня есть темы, настроенные в консоли.

0 ответов

Другие вопросы по тегам