2013-05-05 4 views
0

Я пытаюсь использовать API YouTube V3 с завитком (я стараюсь PHP, никакого результата)API YouTube V3 локон PHP

Так я могу подключить свой счет с помощью ИПН и я собирать accesToken.

Отказ от ответственности. Теперь я хочу, чтобы использовать ее, я иду на док https://developers.google.com/youtube/v3/docs/channels/list

И я хочу информацию на моем канале с этим Адрес:

GET https://www.googleapis.com/youtube/v3/channels?part=statistics&mine=true&key={YOUR_API_KEY} 

Authorization: Bearer ya29.AHES6ZRgKyWjPn_gwkMGDuI5N1Yzu4MmUPXTGybTRbox2zLatw 
X-JavaScript-User-Agent: Google APIs Explorer 

Так я использую этот код:

$option = array(
     'part' => 'statistics', 
     'mine' => 'true', 
     'key' => 'AIzaSyBmykey_xZhOR22u9txLyU6Yc' 
    ); 
$url = "https://www.googleapis.com/youtube/v3/channels" 
    $curl = curl_init($url); 

    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET'); 
    curl_setopt($curl, CURLOPT_POST, 1); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $option); 
    $curlheader[0] = "Authorization: Bearer " . $accessToken; 
    curl_setopt($curl, CURLOPT_HTTPHEADER, $curlheader); 

    $json_response = curl_exec($curl); 

    curl_close($curl); 

    $responseObj = json_decode($json_response); 

Но i have on erro (нет результата) Возможно, ошибка в параметре, подобном:

?part=statistics&mine=true&key={YOUR_API_KEY} with curl 

Если кто-то может мне помочь.

+1

Привет, я пытаюсь сделать то же самое почти, но как мне получить $ accessToken, который у вас есть рядом с авторизацией: Носитель – relipse

ответ

1

Во-первых у вас есть синтаксическая ошибка в этой строке:

$url = "https://www.googleapis.com/youtube/v3/channels" 

Оно должно быть:

$url = "https://www.googleapis.com/youtube/v3/channels"; 

Теперь, если фиксирующее это не помогает, вы говорите CURL сделать оба GET и POST. Это, вероятно, лучше просто получить так:

$option = array(
     'part' => 'statistics', 
     'mine' => 'true', 
     'key' => 'AIzaSyBmykey_xZhOR22u9txLyU6Yc' 
    ); 
$url = "https://www.googleapis.com/youtube/v3/channels?".http_build_query($option, 'a', '&'); 
$curl = curl_init($url); 

curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
$curlheader[0] = "Authorization: Bearer " . $accessToken; 
curl_setopt($curl, CURLOPT_HTTPHEADER, $curlheader); 

$json_response = curl_exec($curl); 

curl_close($curl); 

$responseObj = json_decode($json_response); 
0

Я была такая же проблема, он не будет работать, пока я загрузил его на мой сервер (в отличие от моего местного), а затем он начал работать. Ключ API не работает при доступе с локального хоста.

1

Вот код, который работает:

$option = array(
     'part' => 'statistics', 
     'mine' => 'true', 
     'key' => 'AIzaSyBmykey_xZhOR22u9txLyU6Yc' 
    ); 
    $url = "https://www.googleapis.com/youtube/v3/channels?".http_build_query($option, 'a', '&'); 
    $curl = curl_init($url); 

    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($curl, CURLOPT_REFERER, "http://www.exemple.com"); 

    $json_response = curl_exec($curl); 

    curl_close($curl); 

    $responseObj = json_decode($json_response); 

Магия удалить авторизацию и заголовок и использовать реферер (если вы установите приложение с restictions).