如何通过Android中的Picasa API访问固定用户的数据

时间:2012-07-29 04:37:26

标签: android picasa google-api-java-client

我正在编写一个Android应用程序,它将访问用户(功能帐户)的照片。 如果可能,甚至硬编码功能帐户id&密码没问题。无需最终用户互动。

无法使用谷歌数据api,因为Android不支持 所以我发现最接近的是这个单用户“安装”的客户端身份验证 在Gdata API doc中, 要使用ClientLogin(也称为“已安装应用程序的身份验证”),请创建PicasawebService对象,然后调用setUserCredentials方法来设置用户ID和密码

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

Picasa服务在API控制台中不可用。

同时,当我尝试使用OAuth 2.0时,它不可用

我想知道Picasa应该非常受欢迎,这种简单访问的最佳方式是什么?

官方picasa-atom-oauth样本

This是我发现的官方picasa-atom-oauth样本。有一个自定义的回调服务器类,但似乎它正在利用浏览器来获取令牌。是否可以对其中的密码进行硬编码?

我看了this similar question,似乎令牌上也存在问题。 是否有人按照建议使用"oauth2:https://picasaweb.google.com/data/"

1 个答案:

答案 0 :(得分:0)

最后在Google搜索更多示例后,旧客户端登录即可。

我使用的是google api client 1.10.1-beta

  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构建请求。