我会保持简单。我的要求是在我的Android应用程序中使用OAuth2验证静态Google帐户(使用用户名和密码)。获得oauth令牌后,我会将一些视频上传到YouTube。所有其他工作都已完成上传。但目前我正在使用GoogleAuthUtil从Android系统中选择一个帐户。像这里给出的那样(http://developer.android.com/google/auth/http-auth.html)
现在我要禁用此功能。我只是想将所有视频上传到固定的YouTube / Google帐户。我也经历了this问题,但也没有答案。
我还发现了this问题并且它非常有用,但the tutorial它正在使用已删除的GoogleClientLogin,当我尝试使用GoogleClientLogin时,它会抛出异常403。然后我尝试使用OAuth2网址,它总是要求第一次登录。所以无论如何都要在没有任何用户参与的情况下对Google帐户进行身份验证并获取OAuth令牌。请帮帮我。
由于
答案 0 :(得分:1)
请参阅How do I authorise an app (web or installed) without user intervention? (canonical ?)
该答案涉及服务器应用程序,但Android应用程序的行为方式相同。因此,您可以在应用中嵌入刷新令牌,或将其下载并存储,然后在应用需要访问YouTube时使用该令牌生成访问令牌。
答案 1 :(得分:1)
最后我找到了解决问题的方法。现在,我可以从我的Android应用上传视频到静态YouTube帐户。虽然Youtube Data api v2已弃用但我将此用于我的要求。 我使用以下代码将视频上传到YouTube
YouTubeService service = new YouTubeService("project id on console.developer.google.com","androidkey");
service.setUserCredentials("yourYouTubeAccount@gmail.com", "yourPassword");
VideoEntry newEntry = new VideoEntry();
YouTubeMediaGroup mg = newEntry.getOrCreateMediaGroup();
mg.setTitle(new MediaTitle());
mg.getTitle().setPlainTextContent("Video Title");
mg.addCategory(new MediaCategory(YouTubeNamespace.CATEGORY_SCHEME, "Tech"));
mg.setKeywords(new MediaKeywords());
mg.getKeywords().addKeyword("anyKeyword");
mg.setDescription(new MediaDescription());
mg.getDescription().setPlainTextContent("VIDEO DESCRIPTION");
mg.setPrivate(false);
mg.addCategory(new MediaCategory(YouTubeNamespace.DEVELOPER_TAG_SCHEME, "mydevtag"));
mg.addCategory(new MediaCategory(YouTubeNamespace.DEVELOPER_TAG_SCHEME, "anotherdevtag"));
MediaFileSource ms = new MediaFileSource(videoFileToUpload, "video/quicktime");
newEntry.setMediaSource(ms);
VideoEntry createdEntry = service.insert(new URL(Constant.YOUTUBE_UPLOAD_URL), newEntry);
Log.v("TAG", "VIDEO INSERTED ID : " + createdEntry.getId());
您将需要以下库来使用代码:
对于gdata库,请转到this链接并下载gdata-src.java-x.xx.x.zip和gdata-samples.java-x.x.x.zip。提取这些文件夹,您将获得所需的罐子
-Thanks