2016-03-05 3 views
3

Я не был точно уверен, как сформулировать заголовок, но я создаю API, который извлекает определенную дату JSON о канале Youtube, и он отлично работает и денди, пока я не нахожусь канал, как это, https://www.youtube.com/channel/UCRMZyEp0IzcI0IGpDFRh6fQПолучить идентификатор канала youtube без отображаемого имени

где его идентификатор учетной записи находится в URL вместо https://www.youtube.com/user/iceycat25.

Когда я запускаю API, и я ищу «iceycat25», данные тянутся нормально, как должно, но если я ищу «MOTO TIME« API не возвращает такого пользователя. Есть ли способ исправить это? Вот соответствующий код, который у меня есть сейчас.

// obtain your own API key at 
// https://console.developers.google.com 
$MyKey = xxxxxxxxxx_xxxxxxxxxx_xxxxxxxxxx; 
// Convert the GET data into variables. 
$YoutubeName = $_GET["Channel_Name"]; 
$Command = $_GET["Command"]; 

// Get the channel ID and Upload ID from the YouTube name inputted 
$IDs = json_decode(@file_get_contents("https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=$YoutubeName&key=$MyKey"), true); 
if($IDs['items'][0]['id'] == null) 
{ 
    echo 'No such YouTube channel exists.'; 
    die(); 
} 

ответ

0

Я реализовал это в моем форуме в качестве div. Как вы видите здесь API YouTube и не принимает имена пользователей и идентификаторы в том же параметре.

С ID:

<div class="g-ytsubscribe" data-***channelid***="CHANNELID" data-layout="full" data-count="default"></div> 

С Логин:

<div class="g-ytsubscribe" data-***channel***="{$user.customFields.youtube_us}" data-layout="full" data-count="default"></div> 

Вы должны изменить атрибуты.

Просто попробуйте с https://www.googleapis.com/youtube/v3/channels?part=contentDetails&id=$YoutubeName&key=$MyKey, это должно сработать, если нет - оставьте комментарий.

Подробнее: https://developers.google.com/youtube/v3/docs/channels/list#examples

+0

Да, похоже. https://developers.google.com/youtube/v3/guides/working_with_channel_ids – Alpix

+0

Если я просто использую 'id = $ YoutubeName' по сравнению с' forUsername = $ YoutubeName', ничего не появляется, когда я ищу «iceycat25» или «MOTO TIME», , Это требует от меня знать идентификатор канала перед началом работы. Что в ретроспективе, когда конечный пользователь предоставляет свой собственный идентификатор канала, лучше, поскольку имена дисплеев не уникальны, и они могут извлекать данные за неправильного пользователя. Я просто отмечу, что это принято. Спасибо, что пытались помочь! –

Смежные вопросы