我有一个iOS(swift)应用程序,可以通过我的Google帐户登录并获取访问令牌。从iOS应用程序上传视频到YouTube将返回400
检索访问令牌后,我向YouTube发送了一个发布视频上传请求。
错误返回如下:
{error =
{code = 400;
errors =({domain = global;
location = part;
locationType = parameter;
message = \"Required parameter: part\";
reason = required;});
message = \"Required parameter: part\";};}"
以下是我使用做一个POST请求的代码。
func postVideoToYouTube(token: String, callback: @escaping (Bool) -> Void){
if videoPath == nil {
return
}
var movieData: NSData?
do {
movieData = try NSData(contentsOfFile: (videoPath?.relativePath)!, options: NSData.ReadingOptions.alwaysMapped)
} catch _ {
movieData = nil
return
}
let headers = ["Authorization": "Bearer \(token)"]
let URL = try! URLRequest(url: "https://www.googleapis.com/upload/youtube/v3/videos", method: .post, headers: headers)
print("Video Data",movieData)
Alamofire.upload(multipartFormData: { multipartFormData in
multipartFormData.append(movieData as! Data, withName: "video", fileName: "video.mp4", mimeType: "application/octet-stream")
}, with: URL, encodingCompletion: {
encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
debugPrint("SUCCESS RESPONSE1: \(response)")
}
case .failure(let encodingError):
print("ERROR RESPONSE: \(encodingError)")
}
})
}
此前错误是403禁止的,但我已经加入“https://www.googleapis.com/auth/youtube.force-ssl”到的范围,现在我得到一个400
任何帮助将不胜感激。谢谢。
它说它需要HTTP请求中的“part”参数,Youtube API说它需要这个参数,为什么它不在请求中? (我很确定它不是MultipartFormData,但是Youtube想要的其他参数) – zezioen