使用YouTube API和Alamofire插入评论

Jac*_*vin 6 youtube-api youtube-data-api swift alamofire

感谢您抽时间阅读.我对如何使用YouTube API插入评论感到困惑.我是使用API​​的新手,所以我不太清楚他们在文档中要做的事情.

我已经验证使用用户谷歌登录功能适用于iOS与范围

"https://www.googleapis.com/auth/youtube.force-ssl"
Run Code Online (Sandbox Code Playgroud)

这是插入评论所必需的.但是现在,我必须插入评论并且(就像我说的那样)我不明白该怎么做,因为我必须在请求体中提供资源.我正在使用Alamofire作为请求,而Swift 4作为我的语言.如果有人能帮助我,我将非常感激.

Au *_*Ris 1

正如我在您的其他帖子(Google API - 无效凭证)中看到的,您知道如何发出经过身份验证的Alamofire请求。现在您需要构建一个合适的参数字典来满足 API 要求。我查看了 Youtube Data API 指南。

这是文档中提供的用于添加注释的 JSON 正文示例:

{
  "snippet": {
   "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
   "topLevelComment": {
    "snippet": {
      "textOriginal": "This video is awesome!"
    }
   },
   "videoId": "MILSirUni5E"
  }
 }
Run Code Online (Sandbox Code Playgroud)

我们根据上面的例子构建一个参数字典,它是一个嵌套字典:

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]
Run Code Online (Sandbox Code Playgroud)

然后创建标头、请求并将参数传递给请求

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)
Run Code Online (Sandbox Code Playgroud)

您应该检查哪些参数是必需的,哪些不是,但我们的想法是根据它们的要求构建适当的参数字典。