Что входит в тело запроса HTTP POST с использованием API YouTube? - PullRequest
0 голосов
/ 10 апреля 2020

Я нашел ответ о том, как сделать запрос HTTP POST, я просто не знаю, как добавить в него синтаксис API YouTube. Вот подпункт для запроса POST:

Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "http://www.somedomain.com"
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send("")]

Теперь вот синтаксис для запроса POST API API playlistitems.insert:

POST https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&key=[YOUR_API_KEY] HTTP/1.1
Authorization: Bearer [YOUR_ACCESS_TOKEN] Accept: application/json Content-Type: application/json
{ "snippet": { "playlistId": "PLO0tYa-h6I_9xJlanhquO8F-rZe6sA0kd", "position": 0, "resourceId": { "kind": "youtube#video", "videoId": "M7FIvfx5J10" } } }

Ошибка и код VBA

Лист для справки кода VBA

Пример от Google Developer, который работает. Мне просто нужно сделать это в Excel VBA

У меня есть ключ авторизации, videoid и playlistid, так как я могу поместить это в тело запроса для HTTP-запроса Excel VBA HTTP POST?

1 Ответ

0 голосов
/ 11 апреля 2020

Попробуйте это:

    Dim json as String
    json = "{""snippet"":{""playlistId"":""PLO0tYa-h6I_9xJlanhquO8F-rZe6sA0kd"",""position"":0,""resourceId"":{""kind"":""youtube#video"",""videoId"": ""M7FIvfx5J10""}}}"

    Dim URL as String

    URL = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&key=[YOUR_API_KEY]"

    Dim objHTTP as Object
    Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")

    With objHTTP

        .Open "POST", URL, False
        'don't think this is needed
        '.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
         .setRequestHeader "Authorization","Bearer [YOUR_ACCESS_TOKEN]"
         .setRequestHeader "Accept", "application/json"
         .setRequestHeader "Content-Type", "application/json"
         .send json

         Do: DoEvents: Loop Until: .readyStatus = 4 'check my syntax here, i may have mis-remembered exact method names.

         Dim x as String
         x = .responsetext

   End WIth

   debug.print x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...