2015-04-18 2 views
1

Я хочу вывести информацию о канале на основе имени пользователя или идентификатора канала. Эта информация получена из URL-адреса, используемого для просмотра этого канала.PHP API данных YouTube получает информацию о канале без присяги

EX: https://www.youtube.com/user/csga5000, или, https://www.youtube.com/channel/some-channel-id

У меня есть этот код:

$this->load->library('APIs/YouTube'); 
echo "["; 
echo json_encode($this->youtube->getId('channel/UCkklJA9WbtJM5-g21xHI3yA'),false); 
echo "\n]"; 

вызываемой функции:

public function getId($url) { 
    $id = explode('/', $url); 
    echo json_encode($id).','; 

    //User's channel 
    if ($id[0] === 'user') { 
     $response = $this->youtube->channels->listChannels('id,snippet',array(
      'forUsername' => $id[1] 
     )); 
    } 
    //Channel id 
    else { 
     $response = $this->youtube->channels->listChannels('id,snippet',array(
      'id' => $id[1], 
      'maxResults' => 2 
     )); 
    } 

    return $response; 
} 

Вот функция конструкт для класса YouTube:

public function __construct() 
{ 
    $this->client = new Google_Client(); 
    $this->client->setDeveloperKey($this->api_key); 
    $this->client->setClientId($this->client_id); 
    $this->client->setClientSecret($this->client_secret); 
    $this->client->setScopes(array(
     Google_Service_Oauth2::PLUS_LOGIN, 
     Google_Service_Oauth2::PLUS_ME, 
     Google_Service_Oauth2::USERINFO_EMAIL, 
     Google_Service_Oauth2::USERINFO_PROFILE, 
     Google_Service_YouTube::YOUTUBE 
    )); 

    $ci =& get_instance(); 
    $this->client->setRedirectUri($ci->config->item('base_url').'auth/youtube/'); 

    $this->oauth = new Google_Service_Oauth2($this->client); 

    $this->youtube = new Google_Service_YouTube($this->client); 
} 

Вызов функции с 'пользователь/csga5000' не работает либо

Результаты отпечатанные являются:

[ 
    [ 
     "channel", 
     "UCkklJA9WbtJM5-g21xHI3yA" 
    ], 
    { 
     "etag":"\"IHLB7Mi__JPvvG2zLQWAg8l36UU\/KcPrlZVHCJ9bAKurpGOj1BBEH6g\"", 
     "eventId":null, 
     "kind":"youtube#channelListResponse", 
     "nextPageToken":null, 
     "prevPageToken":null, 
     "visitorId":null 
    } 
] 

Я просто хочу результаты, как это:

https://www.googleapis.com/youtube/v3/channels?part=id%2Csnippet&id=UCkklJA9WbtJM5-g21xHI3yA&key= {YOUR_API_KEY}

или

https://www.googleapis.com/youtube/v3/channels?part=id%2Csnippet&forUsername=csga5000&key= {YOUR_API_KEY}

Что вы можете проверить здесь: https://developers.google.com/youtube/v3/docs/channels/list#try-it

С forUsername csga5000 или ид UCkklJA9WbtJM5-g21xHI3yA

Все примеры, которые я нашел использовали «мое => правда» и OAuth, чтобы загрузить эти данные, так что ничего на Google , или переполнение стека показалось полезным.

ответ

1

Мне просто не хватало чего-то глупого, я был очень смущен ответом.

мне нужна линия:

$response->getItems();