我一直在寻找谷歌照片的API,这将允许我在Android中创建一个应用程序,将我的照片推送到云中的特定相册。到目前为止,我已经看到了两种可能的解决方案:
1)google drive api - 我昨晚实际上开发了一个POC并且大部分都在工作,但不幸的是我无法指定一个谷歌相册来发送我的图像。 2)旧的picasa网络api - 这个看起来更有前景,但我无法通过验证我的凭据。这是一篇谷歌文章,描述了如何设置它,但PicasawebService对象上的setUserCredentials()方法不再起作用(https://developers.google.com/picasa-web/docs/3.0/developers_guide_java)我想继续追逐选项2,但我找不到PicasawebService对象的方法,这个方法允许我使用手机上登录的用户帐户进行后续通话(通过谷歌登录或AccountPicker意图)。我想也许setUserToken()方法可以工作,我尝试插入我从上述两种登录方法收到的令牌。我在我的OAuth2范围“oauth2:个人资料邮件https://picasaweb.google.com/data/”中请求这个,这确实提示我并询问我是否要访问我的照片,我只是无法弄清楚如何绑定登录用户帐户到PicasawebService电话。
如果我从登录到我的Google帐户的浏览器中点击此网址(此网址位于我上面链接的文章中),我会看到我希望看到的所有内容:https://picasaweb.google.com/data/feed/api/user/username?kind=album所以我知道api仍然可以正常运行,我只是无法弄清楚如何在我的Android应用程序中提升我的有效凭据。
任何建议都将不胜感激 TIA
答案 0 :(得分:0)
答案 1 :(得分:0)
我在2013-2014期间曾经有过这样的工作。但关于关闭picasa网络的讨论太多了,所以我从未将其投入生产。并非所有代码都只是您要求的身份验证...祝您好运。
//获取难以捉摸的令牌
if (TextUtils.isEmpty(token)) {
String SCOPE = "oauth2:http://picasaweb.google.com/data/";
try {
token = GoogleAuthUtil.getToken(context, email, SCOPE);
} catch (UserRecoverableAuthException e) {
token = "";
} catch (IOException e) {
token = "";
} catch (GoogleAuthException e) {
token = "";
}
if (TextUtils.isEmpty(token)) {
return null;
}
}
// send back to picasa
String urls = "https://picasaweb.google.com/data/entry/api/user/"
+ userId + "/albumid/" + albumId;
URL url = new URL(urls);
HttpURLConnection httpURLConnection = (HttpURLConnection) url
.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
httpURLConnection.setUseCaches(false);
// clientid may not be necessary is a crazy long string I think you get it from dashboard. it looks like blah.aps.googleusercontent.com
httpURLConnection.setRequestProperty("X-GData-Client", CLIENT_ID);
httpURLConnection.setRequestProperty("GData-Version", "2");
httpURLConnection.setRequestProperty("Authorization", "OAuth "
+ token);