С Vimeo API невозможно создать новый альбом даже с токеном доступа и создать область видимости - PullRequest
0 голосов
/ 16 сентября 2018

Я использую Официальный модуль Vimeo API NodeJS для создания приложения, и я могу успешно загрузить видео без проблем.Я также могу успешно установить свойство конфиденциальности видео.Теперь я хотел бы переместить это загруженное видео в альбом, и если альбом не существует, я хочу создать его автоматически.У меня есть токен доступа, сохраненный в файле, из которого мое приложение читает, и области действия, предоставленные токену, следующие:

"scope": "interact create edit upload delete video_files private public"

Итак, у меня есть createобласть действия, необходимая для создания нового альбома для пользователя.Однако, когда я делаю запрос к API Vimeo, я получаю сообщение об ошибке, которое не могу устранить или исправить.

{
  "invalid_parameters":[{
      "field":"name",
      "error_code":2204,
      "error":"You have provided an invalid parameter. Please contact developer of this application.",
      "developer_message":"The parameters passed to this API endpoint did not pass Vimeo's validation. Please check the invalid_parameters list for more information."
  }]
}

Вот мой код, который выполняет запрос:

if (!album_uri) {

    console.log("Attempting to create a new album named `" + config.params.video.group + "`");

    var req_make_album = {
                            "method"        : "POST"
                          , "path"          : "/me/albums"
                          , "name"          : config.params.video.group
                          , "description"   : config.params.video.group
                        };

    api.request(req_make_album, function(error, body, status_code, headers) {

                if (error)
                   throw new Error(error);

                step();

     })

}

Чтобы быть уверенным, переменная config.params.video.group является строкой, и чтобы быть уверенным, что это на самом деле строка, я заменил параметры запроса на буквальные:

var req_make_album = {
                         "method"        : "POST"
                       , "path"          : "/me/albums"
                       , "name"          : "My First New Album"
                       , "description"   : "My First New Album"
                     };

Тем не менее, я получил вышеупомянутую ошибку о том, что поле "name" является недействительным.Что мне здесь не хватает?Когда я захожу на «игровую площадку» API Vimeo для этой конкретной конечной точки, она работает (даже когда я аутентифицируюсь через мое приложение), но я не понимаю, почему это не будет работать, когда я делаю запрос через модуль NodeJS.Почему я получаю эту ошибку?

1 Ответ

0 голосов
/ 17 сентября 2018

Моя ошибка. Проблема заключается в том, что API Vimeo требует, чтобы элементы "name" и "description" передавались как объект.

Итак, вместо

var req_make_album = {
                         "method"        : "POST"
                       , "path"          : "/me/albums"
                       , "name"          : "My First New Album"
                       , "description"   : "My First New Album"
                     };

На самом деле должно быть:

var req_make_album = {
                         "method"        : "POST"
                       , "path"          : "/me/albums"
                       , "query"         : {"name" : "My First New Album", "description" : "My First Album's Description"
                     };

Чем больше вы знаете:)

...