使用YouTube API和Alamofire插入评论

时间:2018-05-18 13:19:05

标签: swift youtube-api alamofire youtube-data-api

感谢您花时间阅读本文。我对如何使用YouTube API插入评论感到困惑。我是使用API​​的新手,所以我不太了解他们在documentation中要做的事情。

我使用范围

Google Sign-In for iOS对用户进行了身份验证
"https://www.googleapis.com/auth/youtube.force-ssl"

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

2 个答案:

答案 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",
                ]
             ]
        ]