Недопустимый токен - недопустимый токен: недопустимый пользователь для двухстороннего OAuth - PullRequest
0 голосов
/ 26 марта 2012

Я пытаюсь получить доступ к Google Docs с помощью OAuth2.0.Я получил идентификатор клиента и секретный ключ от консоли API Google.Но когда я запускаю этот код, я получаю исключение.кто-нибудь может мне подсказать, если я что-то упустил ..

String CONSUMER_KEY = ".....apps.googleusercontent.com";
        String CONSUMER_SECRET = "sM52Mts_d7snVIomnJaQkjkA";

        GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
        oauthParameters.setOAuthConsumerKey(CONSUMER_KEY);
        oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET);

        DocsService client = new DocsService("testing");
        client.setOAuthCredentials(oauthParameters, new OAuthHmacSha1Signer());

        // Retrieve user's list of Google Docs
        String user = "xesunny@gmail.com";
        URL feedUrl = new URL("https://docs.google.com/feeds/default/private/full" +
                              "?xoauth_requestor_id=" + user);

        DocumentListFeed resultFeed = client.getFeed(feedUrl, DocumentListFeed.class);
        for (DocumentListEntry entry : resultFeed.getEntries()) {
          System.out.println(entry.getTitle().getPlainText());
        }

Исключение:

com.google.gdata.util.AuthenticationException: Token invalid - Invalid token: Invalid user for the two legged OAuth

Неверный токен - Неверный токен: Неверный пользователь для двухногого OAuth

Неверный токен- Неверный токен: Неверный пользователь для двухногого OAuth

Ошибка 401

Ответы [ 2 ]

1 голос
/ 28 июня 2014

Похоже, вы используете идентификатор клиента, который не является служебной учетной записью.Двухсторонняя аутентификация поддерживается только для учетных записей служб.Если вы создаете новую учетную запись службы и используете ее идентификатор клиента и секрет (секретный ключ RSA), ваш код должен работать.

1 голос
/ 04 апреля 2012

Параметр xoauth_requestor_id предназначен только для 2-стороннего Oauth (2LO), который используется для аутентификации пользователей Google Apps.Я не думаю, что можно аутентифицировать обычных пользователей Gmail, используя 2LO.

Вы видели пример с 3-сторонним Oauth здесь http://code.google.com/apis/gdata/docs/auth/oauth.html#Examples

...