GoogleSignIn не работает с YouTube API (Swift) - PullRequest
0 голосов
/ 26 апреля 2018

Я создаю приложение для iOS, где пользователи могут смотреть видео с моего канала YouTube. Я хочу, чтобы мои пользователи могли любить и не любить видео. У меня есть кнопка «Мне нравится», с которой я хочу оценить видео YouTube. Вот функция для кнопки, которую я получил от YouTube Rate API

func rateButtonTapped() {
    Alamofire.request("https://www.googleapis.com/youtube/v3/videos/rate", parameters: ["id":VIDEOID,"rating":"like","key":API_KEY], encoding: URLEncoding.default, headers: nil)
}

Для этого требуется авторизация. Итак, я следовал руководству GoogleSignIn Google и внедрил его в свое приложение именно так, как говорит Google. Из того, что я могу сказать, это работает. Пользователь нажимает GIDSignInButton, а затем пользователь входит в свою учетную запись Google и разрешает доступ. В настоящее время я добавил только одну область

GIDSignIn.sharedInstance().scopes.append("https://www.googleapis.com/auth/youtube.force-ssl")

, который необходим для оценки видео на YouTube. Но ответ String, который я получил от Alamofire, -

SUCESS: Not Found

и видео не оценено. Итак, я вернулся на страницу API рейтинга YouTube и внизу нахожу:

Тип ошибки notFound (404)

Сведения об ошибке videoNotFound

Описание Невозможно найти видео, которое вы пытаетесь оценить. Проверьте значение параметра id запроса, чтобы убедиться, что оно правильный.

Так что я предполагаю, что моя переменная VIDEOID (вызванная в запросе Alamofire) просто не права. Поэтому я использовал идентификатор, предоставленный YouTube, на странице API рейтинга YouTube . Тот же ответ и нет рейтинга. Кто-нибудь знает, что происходит? Я был в тупике.

Я использую Swift

Ответы [ 2 ]

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

Используйте эту опцию, чтобы выяснить точную причину вашей проблемы. Просто используйте эту ссылку вместе с вашим идентификатором как VIDEOID , а также используйте oauth2.0 для авторизации вашего запроса HttpRequest в Googles ApiExplorer (нажмите здесь).

Надеюсь, вы увидите, что рейтинг можно увидеть в данном видео ID. Докажите, что эти строки являются ложными.

Так что я предполагаю, что моя переменная VIDEOID (вызванная в запросе Alamofire) просто не права. Поэтому я использовал идентификатор, предоставленный YouTube, на странице API YouTube Rate. Тот же ответ и нет рейтинга.

Теперь при сбое в авторизации запроса Oauth2.0. Возвращается

Не найдено

Пожалуйста, обновите ваш код авторизацией запроса на обслуживание oauth2.0 Обратитесь сюда за помощью по интеграции Oauth . Также представьте код, чтобы мы могли вам помочь.

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

Это параметр VideoID, который является проблемой (проверьте причину ошибки 404 в ссылке).

Я подозреваю, что переменная является необязательной, и поэтому параметр читает что-то вроде "ID": необязательный (VIDEOID)] или, тем не менее, быстрое форматирование необязательно при печати. ​​

Я всегда создаю свойство параметров для создания словаря, а затем проверяю его (вывод на печать) и передаю в качестве параметра в AlamofireRequest.

...