swift - 使用 YouTube API 和 Alamofire 插入评论
问题描述
感谢您抽时间阅读。我对如何使用 YouTube API 插入评论感到困惑。我对使用 API 还很陌生,所以我不太明白他们在文档中所说的内容。
我已经使用适用于 iOS的Google Sign-In 对用户进行了身份验证
"https://www.googleapis.com/auth/youtube.force-ssl"
这是插入评论所必需的。但是现在,我必须实际插入评论并且(就像我说过的那样)我不明白该怎么做,因为我必须在请求正文中提供资源。我使用 Alamofire 作为请求,使用 Swift 4 作为我的语言。如果有人可以帮助我,我将不胜感激。
解决方案
正如我在您的另一篇文章(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)
您应该检查哪些参数是强制性的,哪些不是,但想法是根据他们的要求构建一个适当的参数字典。
推荐阅读
- html - 自定义垫选择列表
- firebase - 我无法从 Google 跟踪代码管理器下载我的容器有什么原因吗?
- typescript - 打字稿:让键或参数的类型取决于另一个的值
- python - 是否可以在命令行中使用带有 argparse 的空格?前任。--name 名字 姓氏
- arduino-esp32 - 与 microSD 卡交互时出错?
- ios - 无法监督设备 - Apple tv 设置
- javascript - Jquery html不适用于动态添加的元素
- math - (算法 | NetLogo)如何根据坐标输入创建和填充多边形?
- hazelcast - HazelcastSerializationException 与 Hazelcast 4.2 和 bucket4j 6.2.0
- php - 我们可以在 PHP 7.3 或任何最新版本上运行 Zend 框架 2.0.5 或 2.xx 版本吗?