Как получить код iframe для частного видео с помощью API dailymotion

Я хотел бы использовать API dailymotion для получения информации о моих личных видео. ТАК... У меня есть учетная запись Dailymotion. Я создал ключ API и секретный ключ. Я скачал класс PHP.

Поэтому я думаю, что мне нужно аутентифицировать свою учетную запись и после получить код... но он не работает :'( Пожалуйста, не могли бы вы дать мне пример кода для этого?

мой тестовый код пока такой

<?php 
error_reporting(E_ALL & ~E_NOTICE);
ini_set('display_errors', 1);

$apiKey = 'xxxx';
$apiSecret = 'xxxx';
require_once 'Dailymotion.php';
// Instanciate the PHP SDK.
$api = new Dailymotion();

// Tell the SDK what kind of authentication you'd like to use.
// Because the SDK works with lazy authentication, no request is performed at this point.
$api->setGrantType(Dailymotion::GRANT_TYPE_AUTHORIZATION, $apiKey, $apiSecret);

$api = new Dailymotion();
try
{
$result = $api->get(
'/video/privateVideoId',
array('fields' => array('id', 'title', 'owner'))
);

}
catch (DailymotionAuthRequiredException $e)
{
echo $e->getMessage();
// If the SDK doesn't have any access token stored in memory, it tries to
// redirect the user to the Dailymotion authorization page for authentication.
//return header('Location: ' . $api->getAuthorizationUrl());
}
catch (DailymotionAuthRefusedException $e)
{
echo $e->getMessage();
// Handle the situation when the user refused to authorize and came back here.
// <YOUR CODE>
}

trace($result);

function trace($d) {
echo '<pre>';
var_dump($d);
echo '</pre>';
}
?>

и результат: этому пользователю не разрешен доступ к этому видео.

поэтому я думаю, что проблема с аутентификацией ... но я не понимаю, как это сделать только с php

большое спасибо за твою помощь


person yoyoy    schedule 26.02.2015    source источник


Ответы (1)


Похоже, в вашем коде и в способе аутентификации есть пара проблем:

1) ваш код: вы вызываете $api = new Dailymotion(); , а затем устанавливаете тип предоставления авторизации с помощью своего ключа API и секрета. Но в следующей строке вы переопределяете все это, переписывая $api = new Dailymotion();. Поэтому я рекомендую вам удалить эту строку, иначе вы как будто не установили тип гранта!

2) Существует интересный пример кода, касающийся типа предоставления авторизации в php, который делает именно то, что вы пытаетесь сделать, по адресу https://developer.dailymotion.com/tools/sdks#sdk-php-grant.-authorization Ваш код очень похож, почему вы закомментировали часть return header('Location: ' . $api->getAuthorizationUrl()); при ловле DailymotionAuthRequiredException ? Эта часть перенаправляет пользователя на страницу авторизации, чтобы он мог пройти аутентификацию. Я также рекомендую взглянуть на другие типы грантов для аутентификации, такие как тип гранта пароля (https://developer.dailymotion.com/tools/sdks#sdk-php-grant-password)

person dailymotion    schedule 08.06.2015