6

我想从我的 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);

非常感谢,阿尔贝三世

4

3 回答 3

4

正如错误所说,您尚未将帐户凭据链接到 youtube。

您可以解决这个问题: - 连接 www.youtube.com 中应用程序上使用的帐户 - 尝试上传视频 - 在 youtube 询问时设置姓名和姓氏,并处理链接到 gmail。

完毕!!!在使用我的应用程序使用 Firefox 上传视频之前,我尝试过。

于 2013-03-26T16:58:41.640 回答
3

您无法将 YouTube 频道与服务帐户相关联,并且您尝试在服务帐户的上下文中上传。

您应该通过 OAuth 2 流程并授权访问,而不是使用服务帐户,同时使用您实际要上传到的帐户登录到浏览器。

我了解使用服务帐户的好处,但 YouTube 目前尚未设置为使用它们。

于 2012-12-06T20:38:22.333 回答
2

如果您已创建 youtube 帐户并且已链接到您的 google 帐户,请确保您在 youtube 中创建自己的频道。

这将允许 API 将视频上传到您创建的频道。

希望能帮助到你。

于 2013-03-08T07:46:53.863 回答