Как получить доступ к фиксированным данным пользователя через API Picasa в Android

StackOverflow https://stackoverflow.com//questions/11706703

Вопрос

Я пишу приложение для Android, которое будет получать доступ к фотографиям пользователя (функциональной учетной записи).Если возможно, даже жесткое кодирование функционального идентификатора учетной записи и пароля подойдет.Никакого взаимодействия с конечным пользователем не требуется.

Невозможно использовать API данных Google, поскольку Android не поддерживает Таким образом, самое близкое, что я нашел, это эта однопользовательская «установленная» аутентификация клиента в Документация по API Gdata, Чтобы использовать ClientLogin (также называемый «аутентификация для установленных приложений»), создать объект PicasaWebService, а затем вызовать метод setUserCredentials для установки идентификатора пользователя и пароля

PicasawebService myService = new PicasawebService("exampleCo-exampleApp-1"); 
myService.setUserCredentials("liz@gmail.com", "mypassword");

Служба Picasa недоступна в консоли API.

Между тем, когда я пытаюсь использовать OAuth 2.0, он недоступен.

Интересно, Picasa должна быть довольно популярной, как лучше всего обеспечить такой простой доступ?

Официальный образец picasa-atom-oauth

Этот — это официальный образец picasa-atom-oauth, который я нашел.Существует настраиваемый класс сервера обратного вызова, однако, похоже, он использует браузер для получения токена.Можно ли в нем жестко закодировать пароль?

Я читаю этот похожий вопрос, и, похоже, с токеном тоже есть проблема.Удалось ли кому-нибудь использовать "oauth2:https://picasaweb.google.com/data/" как предложено?

Это было полезно?

Решение

Наконец, после поиска в Google дополнительных примеров, старый логин клиента — это то, что вам нужно.

Я использовал клиент Google API 1.10.1-бета.

  private static String getTokenByAuthenticatingWithClientLogin(HttpTransport transport) throws IOException {
    ClientLogin authenticator = new ClientLogin();
    authenticator.authTokenType = "lh2";
    authenticator.username = "username";
    authenticator.password = "password";
    authenticator.transport = transport;
    return authenticator.authenticate().getAuthorizationHeaderValue();
  }

установите токен в заголовках

GoogleHeaders headers = new GoogleHeaders();
headers.setApplicationName("APOD/1.0");
headers.setGDataVersion("2");
  String token = getTokenByAuthenticatingWithClientLogin(transport);
  headers.setAuthorization(token);

Затем используйте com.google.api.client.http.HttpRequestFactory для создания запроса.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top