本文介紹了更新消息{0}上的YouTube API意外部分的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
使用該API有一段時間了,遇到了一個問題:youtube.part上的400錯誤請求。正常情況下不是問題,我想可能是指定了不正確的部分,錯誤消息會告訴我錯誤的地方,我可以很容易地更改它,然而,錯誤如下:
400 Bad Request
{
"code" : 400,
"errors" : [ {
"domain" : "youtube.part",
"location" : "part",
"locationType" : "parameter",
"message" : "{0}",
"reason" : "unexpectedPart"
} ],
"message" : "{0}"
}
通常在"message": "{0}"
中,它應該會告訴您哪里出了問題。在這里搜索了一下,我似乎找不到解決方案,現在我只指定snippet
。在構建我的更新請求時,我只指定了snippet.title
snippet.tags[]
&;snippet.categoryId
。
以上是在測試環境中使用的,請求在youtube
范圍內獲得授權,因為我使用它將視頻上傳到同一個YouTube頻道。
我自己的想法可能是:
無法在加載視頻后直接更新視頻(但可以列出)
我不知何故遇到了錯誤
對于那些希望重現我所得到的東西的人,我在測試中采取了以下步驟:
使用授權憑據設置YouTube實例
將隨機小文件上傳到頻道(設置視頻標題等)
嘗試按ID列出視頻成功返回后
使用此ID從YouTube檢索視頻資源
更改標記部分,保留標題ETC不變
嘗試更新并收到錯誤
任何幫助都將不勝感激,我真的希望這不是一個顯而易見的解決方案:)
推薦答案
當您的視頻更新請求未列出您要發送的視頻對象中包含的所有部分時,會發生這種情況。例如,如果您的視頻對象有代碼片段和狀態(因為您使用了video.setSnippet
和video.setStatus
),則更新方法中的第一個參數必須列出這兩個部分:
Video ve = listVids[0];
ve.setStatus(...)
ve.setSnippet(...)
...
YouTube.Videos.Update updateVideosRequest = youtube.videos().update("snippet, status", ve);
Video videoResponse = updateVideosRequest.execute();
請注意youtube.videos().update
的第一個參數,它同時包含狀態和代碼段。
希望這能幫助您。
這篇關于更新消息{0}上的YouTube API意外部分的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,