【发布时间】:2012-11-23 10:34:35
【问题描述】:
我想从我的 java web 应用程序上传 youtube 上的视频: 我想接收(服务器端)我的 authToken 和 form-action 以便上传视频。
- 我创建了一个新的 google/youtube 帐户
- 我在自己的帐户中创建了一个 youtube 频道
- 我在我的 google 控制台 api 中创建了一个新项目作为服务帐户
现在我正在尝试使用 oAuth 2.0 实现我的代码。 我有 accessToken 但是,当我尝试调用服务 getFormUploadToken(url, object) 时,响应总是相同的“NoLinkedYoutubeAccount 错误 401”。
我还通过 google 支持页面 http://www.youtube.com/my_account_unlink 验证了该帐户,但似乎没问题。
有人知道这个问题吗?
这是我的代码:
HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
JsonFactory JSON_FACTORY = new JacksonFactory();
String accessToken = "";
GoogleCredential credential = null;
credential = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(CLIENT_EMAIL)
.setServiceAccountScopes("http://gdata.youtube.com")
.setServiceAccountPrivateKeyFromP12File(new File(PRIVATE_KEY_PATH))
.build();
credential.refreshToken();
accessToken = credential.getAccessToken();
YouTubeService service = new YouTubeService(CLIENT_ID, DEV_KEY);
service.setAuthSubToken(accessToken, null);
VideoEntry newEntry = new YouTubeMediaGroup mg = newEntry.getOrCreateMediaGroup();
mg.setTitle(new MediaTitle());
mg.getTitle().setPlainTextContent("My Test Movie");
URL uploadUrl = new URL("http://gdata.youtube.com/action/GetUploadToken");
FormUploadToken token = service.getFormUploadToken(uploadUrl, newEntry);
非常感谢, 阿尔贝三世
【问题讨论】:
标签: java youtube-api google-api-java-client