Vimeo API – Авторизация и загрузка

Сегодня я хотел бы поговорить о видео. В прошлый раз мы говорили про YouTube, сегодня я решил выбрать Vimeo. Как вы знаете, видео обычно означает, что нужно иметь много места на вашем хостинге. И это правда, если вы храните свои файлы на хостинге. Но для того, чтобы избежать всех этих трудностей, вы можете попробовать работать с отдельным видео хостингом, в качестве примера Vimeo (или YouTube). В данном уроке я расскажу, как создать прекрасный Vimeo загрузчик для вашего сайта.

Сложность

Для достижения этой цели, мы будем использовать Vimeo Upload API. Для начала зарегистрируемся в Vimeo. После, откройте эту страницу, создайте собственное приложение (приложение загрузки). Нажмите справа на кнопку 'Create a new app'. Здесь заполняем все поля. В 'App URL' – добавляем ссылку на готовое приложение, 'App Callback URL' – можете использовать тот же URL (в качестве URL Приложения). В результате – получаем Vimeo's Consumer ключ и секретные ключ. Теперь надо использовать их в нашем проекте. Не забывайте отправить запрос к Vimeo, для получения доступа к функции загрузки. Как только получите его – можете продолжать.

Шаг 1. PHP

Создайте файл index.php файл со следующим содержанием:

index.php

<?php
// подготавливаем два ключа
$consumer_key = 'CONSUMER_KEY';
$consumer_secret = 'CONSUMER_SECRET'; require_once('vimeo.php');
session_start(); $sUploadResult = ''; switch ($_REQUEST['action']) {
case 'clear': // Очистка сессии session_destroy(); session_start(); break; case 'upload': // Загрузка видео $vimeo = new phpVimeo($consumer_key, $consumer_secret, $_SESSION['oauth_access_token'], $_SESSION['oauth_access_token_secret']); $video_id = $vimeo->upload($_FILES['file']['tmp_name']); if ($video_id) {
$sUploadResult = 'Your video has been uploaded and available <a href="http://vimeo.com/'.$video_id.'">here</a> !'; $vimeo->call('vimeo.videos.setPrivacy', array('privacy' => 'nobody', 'video_id' => $video_id)); $vimeo->call('vimeo.videos.setTitle', array('title' => $_POST['title'], 'video_id' => $video_id)); $vimeo->call('vimeo.videos.setDescription', array('description' => $_POST['description'], 'video_id' => $video_id)); } else { $sUploadResult = 'Video Fails to Upload, try again later.'; } break; default: // Создаем объект и включаем кеширование $vimeo = new phpVimeo($consumer_key, $consumer_secret); $vimeo->enableCache(phpVimeo::CACHE_FILE, './cache', 300); break; } // Установка начальных переменных $state = $_SESSION['vimeo_state']; $request_token = $_SESSION['oauth_request_token']; $access_token = $_SESSION['oauth_access_token']; // Возвращение if ($_REQUEST['oauth_token'] != NULL && $_SESSION['vimeo_state'] === 'start') { $_SESSION['vimeo_state'] = $state = 'returned'; }
// Устанавливаем точку доступа if ($_SESSION['oauth_access_token'] != null) { $vimeo->setToken($_SESSION['oauth_access_token'], $_SESSION['oauth_access_token_secret']); } $bUploadCase = false; switch ($_SESSION['vimeo_state']) { default:
// Получаем новую точку доступа $token = $vimeo->getRequestToken();
// Сохраняем её в сеансе $_SESSION['oauth_request_token'] = $token['oauth_token']; $_SESSION['oauth_request_token_secret'] = $token['oauth_token_secret']; $_SESSION['vimeo_state'] = 'start';
// Создание ссылки авторизации $authorize_link = $vimeo->getAuthorizeUrl($token['oauth_token'], 'write'); break; case 'returned':
// Сохраняем её if ($_SESSION['oauth_access_token'] === NULL && $_SESSION['oauth_access_token_secret'] === NULL) {
// Точка доступа $vimeo->setToken($_SESSION['oauth_request_token'], $_SESSION['oauth_request_token_secret']); $token = $vimeo->getAccessToken($_REQUEST['oauth_verifier']);
// Сохраняем
$_SESSION['oauth_access_token'] = $token['oauth_token']; $_SESSION['oauth_access_token_secret'] = $token['oauth_token_secret']; $_SESSION['vimeo_state'] = 'done';
// Установка маркера $vimeo->setToken($_SESSION['oauth_access_token'], $_SESSION['oauth_access_token_secret']); }
// Экран с формой загрузки файла $bUploadCase = true; break; } ?>
<!DOCTYPE html> <html lang="en" > <head> <meta charset="utf-8" /> <title>Vimeo API - OAuth and Upload Example | Script Tutorials</title> <link href="/css/main.css" rel="stylesheet" type="text/css" /> </head> <body> <header> <h2>Vimeo API - OAuth and Upload Example</h2> <a href="http://www.script-tutorials.com/vimeo-api-oauth-and-upload-example/" class="stuts">Back to original tutorial on <span>Script Tutorials</span></a> </header> <img src="/vim.png" class="vim" alt="vimeo" /> <?php if ($_SESSION['vimeo_state'] == 'start'): ?> <center> <h1>Step 1. OAuth</h1> <h2>Click the link to go to Vimeo to authorize your account.</h2> <p><a href="/<?= $authorize_link ?>"><?php echo $authorize_link ?></a></p> </center> <?php endif ?> <?php if ($bUploadCase && $sUploadResult == ''): ?> <center> <h1>Step 2. Video info</h1> <h2>Now we should send video file, title and description to Vimeo</h2> </center> <form enctype="multipart/form-data" action="index.php" method="post"> <input type="hidden" name="action" value="upload" /> <label for="file">Please choose a file:</label><input name="file" type="file" /> <label for="title">Title:</label><input name="title" type="text" /> <label for="description">Description:</label><input name="description" type="text" /> <input type="submit" value="Upload" /> </form> <?php endif ?> <?php if ($sUploadResult): ?> <center> <h1>Step 4. Final</h1> <h2><?php echo $sUploadResult ?></h2> </center> <?php endif ?> <br /><center><h2>(<a href="/?action=clear">Click here to start over</a>)</h2></center> </body> </html>

В начале – присоединяем библиотеку vimeo.php, можете загрузить эту библиотеку здесь. Это - очень удобная библиотека для работы с Vimeo. Работа данного API еще проще, чем в YouTube. В случае с Vimeo мы должны: (a) отправить запрос на сайт vimeo, чтобы получить oauth_access_token и oauth_access_token_secret, (b) после, отправляем сам файл vimeo(по почте), а также заголовок и описание файла (как текст). В результате – файл должен быть загружен.

Шаг 2. CSS

Теперь добавим стиль страницы:

css/main.css

.vim {
    display: block;
    margin: 40px auto;
}
form {
    background-color: #ddd;
    display: block;
    margin: 20px auto;
    padding: 15px;
    width: 400px;
}
label {
    display: block;
    margin-bottom: 5px;
}
input, select {
    border-style: groove;
    font-size: 16px;
    height: 25px;
    margin-bottom: 10px;
    width: 400px;

    /*css3 border radius*/
    -moz-border-radius: 5px;
    -ms-border-radius: 5px;
    -o-border-radius: 5px;
    -webkit-border-radius: 5px;
    border-radius: 5px;

    /* CSS3 Box sizing property */
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    -o-box-sizing: border-box;
    box-sizing: border-box;
}

input[type=submit], input[type=file]{
    cursor: pointer;
    font-weight: bold;
    height: 35px;
    padding: 5px;
}

Перевод статьи Vimeo API – OAuth and Upload Example

Тэги: PHPAPIvimeo

Вход

Уважаемый пользователь! Мы обнаружили, что вы используете AdBlock и вынуждены скрыть часть материалов на нашем сайте. Siteacademy существует и развивается за счет доходов от рекламы. Просим внести наш сайт в список исключений или отключить Блокировщик рекламы на нашем сайте.