我想使用dailymotion api来获取我自己的私人视频的信息。 那...... 我有一个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
非常感谢你的帮助
答案 0 :(得分:0)
您的代码和身份验证方式似乎有几个问题:
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
部分发表评论?此部分将用户重定向到auth页面,以便他/她可以进行身份验证。
我还建议您查看其他授权类型以进行身份验证,例如密码授予类型(https://developer.dailymotion.com/tools/sdks#sdk-php-grant-password)