Встраивайте частные видео Vimeo как в веб-приложение, так и в мобильные приложения - Ionic / Angular - PullRequest
0 голосов
/ 29 октября 2018

У меня есть ситуация, когда мы являемся владельцами учетной записи Vimeo pro, содержащей частные видео, и разработчиками приложения Ionic / Angular, в которое мы встраиваем эти видео.

Поскольку мы не хотим, чтобы кто-то мог встраивать эти видео где-либо ... При развертывании в нашем веб-приложении я могу просто выбрать параметр в нашей учетной записи Vimeo, чтобы "встраивать эти видео только в определенные домены" и предоставить домен нашего веб-приложения. Это работает просто отлично.

При развертывании на iOS / Android у меня нет определенного домена, который нужно добавить в «белый список», поэтому в приложении появляется сообщение об ошибке, в которое мы встраиваем эти видео, в котором говорится что-то вроде «Извините, из-за настроек конфиденциальности это видео не может быть отображено здесь. "

Моя проблема в том, что после прочтения документации Vimeo и поиска в Интернете я не могу найти никаких примеров этого конкретного сценария.

Не похоже, что мне нужен весь OAuth, потому что я не требую, чтобы мои пользователи использовали свои собственные учетные записи Vimeo или предоставляли нам доступ к чему-либо в своих учетных записях.

Я просто хочу иметь возможность сохранять наши видео закрытыми на Vimeo, но также и иметь возможность каким-то образом встраивать их в наши веб-приложения и мобильные приложения.

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

Спасибо за любую помощь или руководство!

РЕДАКТИРОВАТЬ: Я должен сказать, что ближе всего я дошел до этого небольшого фрагмента на этой странице здесь: https://developer.vimeo.com/api/authentication где он говорит ...

"ПРИМЕЧАНИЕ. Если вы хотите встроить свои собственные видео на свой веб-сайт (и использовать только Vimeo для транскодирования и хостинга), вам не нужно использовать API для аутентификации вашего приложения. Все, что вам нужно сделать, это сгенерировать новый токен со страницы вашего приложения и включите его в ваше приложение. Это особый случай, когда вы являетесь конечным пользователем и владельцем приложения. А поскольку вы особенный, вы можете пропустить оставшуюся часть этого документа. "

Это похоже на то, что я хочу, но в действительности нет дальнейших инструкций о том, как это сделать.

1 Ответ

0 голосов
/ 29 ноября 2018

Если вам просто нужно вставить видео на веб-сайт, вы можете сохранить свои видео в Vimeo И разрешить вставку видео на свой сайт, выбрав https://vimeo.com/settings/videos/upload_defaults,, установив "Где ваши видео могут быть встроенный?» выберите «Только сайты, которые я выбираю», а затем добавьте домен вашего сайта с помощью кнопки «Добавить домен».

Это будет работать для веб-сайтов, но не очень хорошо для приложений (если ваше приложение не содержит веб-просмотр или фрейм, который указывает на страницу на вашем веб-сайте вместо того, чтобы видео фактически вставлялось в ваше приложение). Возможным решением в этом случае будет использование параметров распространения в настройках вашего видео (https://vimeo.com/manage/{assetID}/distribution). В нижней части страницы вы найдете раздел «Ссылки на видеофайлы», в котором вы найдете ссылки для любой загрузки. или потоковое видео. Это ссылки на реальное видео, и поэтому ими нельзя управлять так же, как и обычными ссылками на код для вставки, поэтому будьте осторожны, когда и когда вы их используете.

Если вам действительно нужно позвонить через API, у меня возникнут некоторые проблемы, и я могу предложить только ограниченную помощь. В настоящее время я могу выполнить вызов API (пример PHP приведен ниже) для конечной точки API Vimeo, предоставить свой токен доступа и получить результат, включающий запрошенную информацию, но ТОЛЬКО *, если используемый мной токен доступа - один созданный некоторое время назад для старого приложения. Любой из новых генерируемых токенов доступа (в новых или старых приложениях в моей учетной записи, похоже, не имеет значения) не будет работать. То же самое касается любого токена доступа, полученного с помощью процесса OAuth 2.0, описанного на сайте Vimeo. Чрезвычайно расстраивает ...

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

    $albumsVideosURL = "https://api.vimeo.com/users/$userID/albums/$albumID/videos?&per_page=2";

    $headers = array( 
        "Content-type: application/json", 
        "Accept: application/vnd.vimeo.*+json;version=3.4", 
        "Authorization: Bearer " . $access_token,
        "scope: public private video_files",
    );

    $ch = curl_init($albumsVideosURL);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);  
    $data = curl_exec($ch);
    curl_close($ch);

EDIT:

Наконец-то все заработало! И без необходимости устанавливать библиотеку Vimeo PHP SDK!

Дело дошло до типа аутентификации! Я продолжал пробовать Basic и Oauth , но его нужно установить на Bearer ! Я отредактировал код PHP в приведенном выше примере, чтобы отразить мое текущее понимание, и ниже я приведу пример JavaScript. Похоже, вам не нужно включать тип заголовка, принять или область действия в заголовках либо. Все, что вам действительно нужно, это аутентификация, и аутентификация должна быть установлена ​​на Bearer.

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        var output = this.responseText;
        console.log(output);
    }
};
xmlhttp.open("GET", endpoint, true);
xmlhttp.setRequestHeader("Authorization", "Bearer " + access_token);
xmlhttp.send();

Мне бы очень хотелось, чтобы технология поддержки Vimeo только что открыла это, вместо того, чтобы постоянно указывать мне установить заголовок набора, не сообщая мне, какой тип использовать ... О, ну, в конце концов, добрались.

...