ContactsService ошибка при аутентификации - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь использовать Java ContactsExample

(https://github.com/google/gdata-java-client), предоставленный в Руководстве по API контактов Google v3.0, для проверки правильности подключения к контактам для указать c учетную запись электронной почты.

Я определил свой проект ( Контакты компании ) для учетной записи электронной почты (demo@gmail.com) и создал учетную запись службы как а также идентификатор клиента OAuth 2.0 для учетной записи службы. Через GSuite Admin Console Security я также определил служебную учетную запись для чтения и записи контактов (https://www.google.com/m8/feeds/).

Я изменил создание ContactsService объект в примере (ContactsExample. java строка 133) для использования имени проекта (Контакты компании), как было создано ранее.

Я передаю адрес электронной почты (demo@gmail.com) и пароль для электронной почты при запуске примера Java в приложении Java я получаю сообщение об ошибке, показанное ниже. Я не могу сказать, должен ли я использовать что-то другое для Имени приложения при создании ContactsService или вместо этого вместо учетных данных пользователя должны использоваться адрес электронной почты и уникальный идентификатор учетной записи службы. Все разные случаи приводят к одной и той же ошибке.

Exception in thread "main" com.google.gdata.util.AuthenticationException: Error authenticating (check service name)
    at com.google.gdata.client.GoogleAuthTokenFactory.getAuthException(GoogleAuthTokenFactory.java:628)
    at com.google.gdata.client.GoogleAuthTokenFactory.getAuthToken(GoogleAuthTokenFactory.java:500)
    at com.google.gdata.client.GoogleAuthTokenFactory.setUserCredentials(GoogleAuthTokenFactory.java:346)
    at com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java:362)
    at com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java:317)
    at com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java:301)
    at sample.contacts.ContactsExample.<init>(ContactsExample.java:140)
    at sample.contacts.ContactsExample.main(ContactsExample.java:609)

Редактировать: 7 января 2020 г.

Я обрезал код, как показано ниже, чтобы уменьшить сложность и сделать его проще выделить проблему, но я получаю ту же ошибку на setUserCredentials. С ошибкой, относящейся к проверьте имя службы , это означает, что имя службы по умолчанию для доступа к контактам "cp", как должно быть установлено в ContactsService. java не работает.

        com.google.gdata.client.contacts.ContactsService gService = new com.google.gdata.client.contacts.ContactsService("Company Contacts");

        String userId = "demo@demo.com";
        String password = "password";

        gService.setUserCredentials(userId, password);

Редактировать: 8 января 2020

Не совсем решение этой проблемы, но я отказался от использования setUserCredentials и теперь вместо него использую setOAuth2Credentials. Однако есть вероятность, что проблема с ContactsService связана с использованием правильных JAR-файлов ... Я просто не могу определить, какие из них.

...