我正在编写一个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/"
?
答案 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构建请求。