1

我正在编写一个 android 应用程序,它将访问用户(功能帐户)的照片。如果可能的话,即使对功能帐户 ID 和密码进行硬编码也可以。不需要最终用户交互。

无法使用 google data 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 示例

是我找到的官方 picasa-atom-oauth 示例。有一个自定义的回调服务器类,但似乎它正在使用浏览器来获取令牌。是否可以在其中硬编码密码?

我读了这个类似的问题,似乎令牌上也有问题。"oauth2:https://picasaweb.google.com/data/"有人按照建议成功使用了吗?

4

1 回答 1

0

最后在谷歌搜索更多示例之后,旧客户端登录是要走的路。

我使用谷歌 api 客户端 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 构造请求。

于 2012-07-29T05:15:17.620 回答