我正在尝试使用 Google Picker 用户界面将图像上传到 Google Drive。到目前为止,我一直没有成功。
这是我正在使用的代码:
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";
所以,现在这对我有用。我附上了解决方案,所以如果有人觉得它足够有趣。:-)