Какой ключ API YouTube отправлять вместе с запросами API из приложения Apache Cordova?

API YouTube предоставляет два возможных ключа API:

  • Для серверных приложений.
  • Для браузерных приложений.

Я предполагаю, что приложение для браузера является правильным при интеграции API YouTube в приложение Apache Cordova, поскольку в конце концов это приложение для браузера.

Проблема здесь в том, что Apache Cordova не будет выполнять запросы с реферером моего домена, а это означает, что он не будет соответствовать белому списку реферера API YouTube, настроенному в моей консоли разработчиков Google.

Насколько я знаю, невозможно принудительно создать реферер в приложении Apache Cordova без изменения кода каждой конкретной платформы, и я не уверен, как мне справиться с этим сценарием.

Моя первая идея заключается в том, что мой собственный RESTful API мог бы проксировать YouTube и работать с ним со стороны сервера, и это позволило бы мне использовать подход серверных приложений.

Может я что-то упустил и есть альтернативный подход?.

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


person Matías Fidemraizer    schedule 03.04.2015    source источник


Ответы (2)


более легкий подход к серверному приложению может заключаться в том, чтобы ваше серверное приложение предоставляло приложению Cordova ключ по запросу. таким образом, ключ не жестко закодирован в приложении (и вы можете переключать ключи или даже «балансировать нагрузку» между ключами на вашем сервере), но вам также не нужно беспокоиться о прокси-части?

откровенный

person futtta    schedule 03.04.2015
comment
Хм, но я хочу распространять свое приложение как нативное. Я имею в виду, что я не хочу открывать приложение из Интернета, а просто использую свой RESTful API из локальных файлов. - person Matías Fidemraizer; 03.04.2015
comment
но ваше локальное приложение будет общаться в Интернете, я полагаю? я хочу сказать, что вы можете заставить свое локальное приложение связываться с удаленным серверным приложением (которое вам, конечно же, придется предоставить), чтобы получить ключ API во время выполнения, избегая необходимости жестко кодировать ключ в вашем приложении. - person futtta; 03.04.2015
comment
А, понятно... Ну, но в конце концов, не было бы предпочтительнее проксировать запросы YouTube, чтобы мне вообще не нужно было делиться своим API-ключом? - person Matías Fidemraizer; 03.04.2015
comment
Я имею в виду... В конце концов, проксирование — это так просто, и я могу избежать, например, необходимости перезапуска приложения пользователями для получения обновленного ключа API, если их ключ был по какой-то причине отброшен (кто знает) - person Matías Fidemraizer; 03.04.2015
comment
ну, проксирование сделает приложение медленнее, так как API-интерфейс YT должен быть быстрее, чем один экземпляр вашего прокси-приложения? относительно необходимости перезапустить приложение; я бы кэшировал ключ на x часов, а затем действительно обновлял его, поэтому перезапуски не требовались? - person futtta; 03.04.2015
comment
Я подумаю над этим подходом, отбрасывать совсем не собираюсь. Вы правы, что, используя ваш подход, мне не нужно было бы обрабатывать трафик YouTube в моем приложении. - person Matías Fidemraizer; 03.04.2015

Я согласился на прокси-запросы к API YouTube, используя мою собственную платформу RESTful.

Таким образом, я выполняю запрос к URI ресурса некоторых из моих собственных RESTful-сервисов, а затем делаю фактический запрос к YouTube, и как только этот последний завершится, я возвращаю результат в приложение Cordova.

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

person Matías Fidemraizer    schedule 03.04.2015