Я застрял с API DailyMotionCloud Мне нужно подписать URL с уровнями безопасности на нем
Мой код работает, но я не знаю, где поставить уровни безопасности при подписании моего URL. Я должен помещать его в компонент [-<pub-sec-data>]
здесь: https://www.dmcloud.net/doc/api/api-streaming.html#signing-a-url
Как я должен хранить строгий URL-адрес реферала и страну в [-<pub-sec-data>]
?
Вот код CloudKey.php: https://github.com/dailymotion/cloudkey-php/blob/master/CloudKey.php
Вот мой код:
<iframe src="<?php
require_once 'CloudKey.php';
$user_id = 'aaaaaaaaaaaaaaaaaaaaaa';
$api_key = 'bbbbbbbbbbbbbbbbbbbbbb';
$media_id = '5466232b947399290102cdb6';
$preset_id = '54662c7c06361d307810e3b5'; // player preset
$preset_name = 'OxygenStream'; // preset name
$seclevel = 32800 ; // I need 2 security levels (country & referer strict)
// 32800 = 1 << 5 . 1 << 15 or CLOUDKEY_SECLEVEL_COUNTRY . CLOUDKEY_SECLEVEL_REFERER_STRICT
$countries = 'cc=fr'; // I'm supposed to put it in the [-<pub-sec-data>]
$referers = 'rf=http://www.oxygenstream.fr/vod/dmcloud';; // I'm supposed to put it in the [-<pub-sec-data>]
// We create the url
$url = sprintf('https://api.dmcloud.net/player/embed/%s/%s/';, $user_id, $media_id);
// We sign the url
$url = CloudKey_Helpers::sign_url($url, $api_key, $seclevel, null, null, null, $countries, $referers, null);
// We write the URL in the Iframe
print($url . '&autoplay=1&preset=54662c7c06361d307810e3b5');?>" width="640" height="360" frameborder="0" allowfullscreen></iframe>
Заранее спасибо за помощь в этом.
Надеюсь, вы знаете, как исправить мой код.
Желаю вам отличного дня,
Antoine
Поскольку вы используете CloudKey PHP SDK, вам действительно не нужно создавать URL-адрес самостоятельно.
При использовании SDK это работает для меня:
$user_id = 'aaaaaaaaaaaaaaaaaaaaaa';
$api_key = 'bbbbbbbbbbbbbbbbbbbbbb';
$media_id = '5466232b947399290102cdb6';
$preset_id = '54662c7c06361d307810e3b5';
$preset_name = 'OxygenStream';
$seclevel = CLOUDKEY_SECLEVEL_COUNTRY | CLOUDKEY_SECLEVEL_REFERER_STRICT ;
$countries = array('fr');
$referers = array('http://oxygenstream.fr/vod/dmcloud');
$cloudkey = new CloudKey($user_id, $api_key);
$url = $cloudkey->media->get_embed_url(array('id' => $media_id, 'seclevel' => $seclevel, 'expires' => time() + 3600, 'countries' => $countries, 'referers' => $referers));
'expires' => time() + 3600,
верно?
<br /> <b>Fatal error</b>: Uncaught exception 'InvalidArgumentException' with message 'Invalid format for COUNTRY, should be an array of country codes.' in /home/www/0b2aa259c9df807691830fefd389c3e7/web/vod/dmcloud/CloudKey.php:464 Stack trace: #0 /home/www/0b2aa259c9df807691830fefd389c3e7/web/vod/dmcloud/index.php(76): CloudKey_Helpers::sign_url('https://api.dmc...', '1fc52a95421f0c1...', 32800, NULL, NULL, NULL, 'cc=fr', 'rf=http://www.o...', NULL) #1 {main} thrown in <b>/home/www/0b2aa259c9df807691830fefd389c3e7/web/vod/dmcloud/CloudKey.php</b> on line <b>464</b><br />