我想从我的 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);
非常感谢,阿尔贝三世