我正在尝试使用Google Picker用户界面将图片上传到Google云端硬盘。到目前为止,我没有成功。
这是我正在使用的代码:
private void onCreatePicker(ViewId viewId) {
final Picker picker = PickerBuilder.create()
.setTitle("Subir imagen a Google Drive")
.addView(viewId)
.addView(DocsUploadView())
.setLocale("es")
.setOAuthToken(token_oauth2)
.setDeveloperKey(DEVELOPER_KEY)
.setCallback(buildPickerCallback(viewId))
.build();
picker.setVisible(true);
}
private JavaScriptObject DocsUploadView() {
return com.ip.gae.gartla.shared.DocsUploadView.create();
}
我请求你帮助我可能会遗漏什么。
感谢您的时间,
此致
更新:我的应用范围似乎错了。为了生成正确的oAuth2Token,您必须声明要为其生成令牌的范围:
以下是我用来生成令牌的方法:
private void tokenOauth2() {
AuthRequest req = new AuthRequest(AUTH_URL, CLIENT_ID)
.withScopes(GOOGLE_DRIVE_SCOPE); // Can specify multiple scopes here
Auth.get().login(req, new Callback<String, Throwable>() {
@Override
public void onSuccess(String token) {
token_oauth2 = token;
}
@Override
public void onFailure(Throwable caught) {
// The authentication process failed for some reason, see caught.getMessage()
}
});
}
这是我正在使用的GOOGLE_DRIVE_SCOPE变量:
String GOOGLE_DRIVE_SCOPE = "https://www.googleapis.com/auth/drive";
所以,现在这对我有用。我已经附上了解决方案,所以如果有人发现它足够有趣。 : - )