0

https://code.google.com/p/youtube-api-samples/source/browse/samples/java/youtube-cmdline-uploadvideo-sample/src/main/java/com/を使用して動画をアップロードしようとしていますgoogle/api/services/samples/youtube/cmdline/youtube_cmdline_uploadvideo_sample/UploadVideo.java の

YouTube コンソールへの登録に成功し、 https: //code.google.com/apis/console/?api=youtube#project:340964720118: access で client_secrets.json を取得しました。

アプリがシークレットにアクセスできるように、シークレットをインストールしました。すべてがうまくコンパイルされていますが、プログラムを実行すると、奇妙なエラーが発生します:

GoogleJsonResponseException code: 400 : Invalid value for: listed is not a valid value
com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
{
  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "message" : "Invalid value for: listed is not a valid value",
    "reason" : "invalid"
  } ],
  "message" : "Invalid value for: listed is not a valid value"
}
at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:145)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:423)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460)

何が悪いのかわかりません。リクエスト自体が深くカプセル化されているため、リクエストの何が問題なのか理解できません...

アップデート。

おかげで

 System.out.println(videoInsert.getHttpContent().toString());

の前に挿入された呼び出し

 Video returnedVideo = videoInsert.execute();

サンプル コードでは、形成されて Google に送信される JSOn が

{snippet={description=Video uploaded via YouTube Data API V3 using the Java library on Sun Sep 29 20:29:30 MSK 2013, tags=[test], title=Test Upload via Java on Sun Sep 29 20:29:30 MSK 2013}, status={privacyStatus=listed}}

しかし、実際には、このjsonの何が問題なのか、サーバー側でエラーが発生する理由はまだ疑問があります。

更新 2:

上記のメッセージは表示されなくなりましたが、アップロードはまだ不可能です。上記の例の行でファイルをアップロードしようとすると、401 エラーが発生します。

        System.out.println(videoInsert.getJsonContent().toString());
        System.out.println(videoInsert.getHttpContent().getType());
        Video returnedVideo = videoInsert.execute();
        System.out.println(returnedVideo.getId());

私は自分の個人データへのリクエストを承認していないと思っていましたが、実際に承認しました (リクエストはデフォルトのブラウザーに読み込まれ、そこで承認し、使用したいアカウントを指定しました)。ただし、その権限を確認する方法はありません。Google アカウントのデータには、Google+ アプリのアプリとアクティビティ ログのみが保持されます。リストに自分のアプリが見つかりません。では、ログインしていない場所はどこで確認できますか?

IOException: 401 Unauthorized
com.google.api.client.googleapis.json.GoogleJsonResponseException: 401 Unauthorized
at      com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:145)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:423)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460)
at ScreenRecordingExample.UploadToYoutube(ScreenRecordingExample.java:356)
4

2 に答える 2