I want to get list of private Dailymotion videos.
I am able to receive an access token with a private key. But then when I send Get request to retrieve the list of videos, I see the following "400 Bad Request: malformed Host header".
<?php
$url = "https://partner.api.dailymotion.com/oauth/v1/token";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
"Host: partner.api.dailymotion.com",
"Content-Type: application/x-www-form-urlencoded",
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$data = "grant_type=client_credentials&client_id=xxx&client_secret=xxx&scope=manage_videos";
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$resp = curl_exec($curl);
curl_close($curl);
$data = json_decode($resp, true);
$access_token = $data['access_token'];
$url = "https://partner.api.dailymotion.com/user/xxx/videos?fields=id&limit=30&private=true";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$headers = array(
"Host: partner.api.dailymotion.com/rest",
);
$auth = "Authorization: Bearer " . $access_token;
$headers[1] = $auth;
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$resp = curl_exec($curl);
curl_close($curl);
//var_dump($resp);
?>
2
Answers
The key used is actually Public API when the code is using Private API endpoint. To access private data with public API key, access token will need to be generated with username and password along with the key and secret.
You can try the following