【发布时间】:2013-10-05 11:56:02
【问题描述】:
我已经在 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();
在示例代码中,我得到了 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 是什么以及为什么它会导致服务器端的错误。
UPD 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)
【问题讨论】:
标签: youtube-api google-api google-api-java-client