Вставьте комментарий с помощью API YouTube и Alamofire - PullRequest
0 голосов
/ 18 мая 2018

Спасибо, что нашли время, чтобы прочитать это.Я запутался в том, как вставить комментарий с помощью API YouTube.Я довольно плохо знаком с использованием API, поэтому не совсем понимаю, о чем они говорят, в их документации .

Я аутентифицировал пользователя с помощью Google Sign-В для iOS с областью действия

"https://www.googleapis.com/auth/youtube.force-ssl"

, которая требуется для добавления комментария.Но теперь мне нужно вставить комментарий и (как я уже сказал) я не понимаю, как это сделать, потому что я должен предоставить ресурс в теле запроса.Я использую Alamofire для запроса и Swift 4 в качестве моего языка.Буду очень признателен, если кто-нибудь сможет мне помочь.

1 Ответ

0 голосов
/ 28 мая 2018

Как я видел в вашем другом посте ( Google API - Неверные учетные данные ), вы знаете, как сделать аутентифицированный запрос Alamofire.Теперь вам нужно создать словарь параметров, соответствующий требованиям API.Я посмотрел руководство по API данных Youtube.

Это пример тела 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)

Выследует проверить, какие параметры являются обязательными, а какие нет, но идея состоит в том, чтобы создать надлежащий словарь параметров на основе их требований.

...