我正在尝试更新scala中的LiveBroadcast的隐私状态(使用java jdk)。这是我的工作流程:
创建private
隐私状态的LiveBroadcast
val snippet = new LiveBroadcastSnippet()
.setTitle(title)
.setScheduledStartTime(YouTubeDateTime.now())
.setChannelId(channel.getId)
val status = new LiveBroadcastStatus()
.setPrivacyStatus("private")
val broadcast = new LiveBroadcast()
.setKind("youtube#liveBroadcast")
.setSnippet(snippet)
.setStatus(status)
val request = youtube.liveBroadcasts()
.insert("snippet,status,contentDetails", broadcast)
request.execute
将直播切换到testing
(如果绑定的直播是活动的)
val request = youtube.liveBroadcasts
.transition(lifeCycleStatus.toString, broadcast.getId, "status")
request.execute
一旦满意的流,设置直播隐私为public
val status = new LiveBroadcastStatus().setPrivacyStatus("public")
broadcast.setStatus(status)
val request = youtube.liveBroadcasts.update("status", broadcast)
request.execute()
最后一部分不起作用,而是返回一个400的响应:
400 Bad Request
{
"code" : 400,
"errors" : [ {
"domain" : "youtube.part",
"location" : "part",
"locationType" : "parameter",
"message" : "{0}",
"reason" : "unexpectedPart"
} ],
"message" : "{0}"
}
在这里做同样的请求工作,所以我不确定我做错了什么。
有人能帮忙吗?
我可能是错的,但我认为你也应该在你的直播请求中添加id
参数。这是YouTube分配的唯一标识广播的ID
。
你可能想要遵循关于如何创建和管理直播的指导方针,就像在广播的生命周期中讨论的那样,其中也提到了在处理API响应时设置你的广播:
您的代码应该从该资源中提取并存储
id
,因为您将需要该值来识别未来API请求中的广播。(您也可以使用相同的ID
识别与直播资源对应的视频资源。)
除此之外,遇到错误400 Bad Request
与指定的细节unexpectedPart
,从常见的请求错误描述在YouTube数据API -错误,意味着:
请求的部分参数指定了一个意外值。