感谢您花时间阅读本文。我对如何使用YouTube API插入评论感到困惑。我是使用API的新手,所以我不太了解他们在documentation中要做的事情。
我使用范围
的Google Sign-In for iOS对用户进行了身份验证"https://www.googleapis.com/auth/youtube.force-ssl"
是插入评论所必需的。但是现在,我必须插入评论并且(就像我说的那样)我不明白该怎么做,因为我必须在请求体中提供资源。我正在使用Alamofire作为请求,而Swift 4作为我的语言。如果有人能帮助我,我将非常感激。
答案 0 :(得分:0)
正如我在您的其他帖子(Google API - Invalid Credentials)中看到的,您知道如何进行经过身份验证的Alamofire
请求。现在,您需要构建适当的参数字典以满足API要求。我查看了Youtube Data API指南。
这是添加评论的文档中提供的JSON正文示例:
{
"snippet": {
"channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"topLevelComment": {
"snippet": {
"textOriginal": "This video is awesome!"
}
},
"videoId": "MILSirUni5E"
}
}
让我们根据上面的示例构建一个参数字典,它是一个嵌套字典:
let commentParams: Parameters = ["textOriginal": "This video is awesome!"]
let snippetParams: Parameters = ["snippet": commentParams]
let topLevelSnippet: Parameters = [
"channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"topLevelComment": snippetParams,
"videoId": "MILSirUni5E"]
let allParams: Parameters = ["snippet": topLevelSnippet]
然后创建标题,请求并将参数传递给请求
let headers: HTTPHeaders = ["Authorization": "Bearer \(token)"]
// As API requires "part" is added as url parameter
let path = "https://www.googleapis.com/youtube/v3/commentThreads?part=snippet"
let request = Alamofire.request(path, method: HTTPMethod.post, parameters: allParams, encoding: JSONEncoding.default, headers: headers)
你应该检查哪些参数是强制性的,哪些参数不是,但我们的想法是根据他们的要求建立一个合适的参数字典。
答案 1 :(得分:0)
而是像这样构建参数字典:
let allParams: [String: Any] = [
"snippet" : [
"channelId" : "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"topLevelComment" : [
"snippet" : [
"textOriginal" : "this video is awesome",
],
"videoId" : "MILSirUni5E",
]
]
]