Компилятор выдаёт ошибку: cannot convert "snippet, status" (untyped string constant) to []string при попытке загрузки видео на YouTube
Я написал программу на Go, которая загружает видео на YouTube аккаунт из определённой директории. Ошибка только одна:
cannot convert "snippet, status" (untyped string constant) to []string
Интернет ничего не выдаёт по такому запросу, потому и обращаюсь за помощью к вам, коллеги.
Код:
...
upload := &youtube.Video{
Snippet: &youtube.VideoSnippet{
Title: *title,
Description: *description,
CategoryId: *category,
},
Status: &youtube.VideoStatus{PrivacyStatus: *privacy},
}
// API вернёт ошибку 400 Bad Request, если tags - это пустая строка.
if strings.Trim(*keywords, "") != "" {
upload.Snippet.Tags = strings.Split(*keywords, ",")
}
call := service.Videos.Insert("snippet, status", upload)
...
Поправка: Компилятор выдаёт такую ошибку:
cannot use "snippet, status" (type string) as type []string in argument to service.Videos.Insert
Ошибку из заголовка показывает VS Code.
Ответы (1 шт):
Давайте посмотрим на сигнатуру метода.
VS Code ее показывает, если навести курсор на слово Insert
func (*youtube.VideosService).Insert(part []string, video *youtube.Video) *youtube.VideosInsertCall
Параметр part - массив строк.
Вы передаете туда единственное строковое значение "snippet, status".
Компилятор не может преобразовать одно к другому и сообщает об этом.
Передайте на вход параметры в виде, соответствующем сигнатуре метода, скорее всего так:
call := service.Videos.Insert([]string{"snippet","status"}, upload)
Да, в примере использования api сделано ровно как у вас:
call := service.Videos.Insert("snippet,status", upload)
но видимо в библиотеке что то поменялось, а в примере это не исправили.