Я хотел бы использовать 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
большое спасибо за вашу помощь
Похоже, что есть несколько проблем в вашем коде и способе аутентификации:
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)
Других решений пока нет …