2014-09-06 101 views
3

我有以下代码:如何读取在PHP中的YouTube数据API V3响应

$yt_profiles = $youtube->channels->listChannels('brandingSettings', array(
'mine' => 'true', 
)); 

返回下面的输出:

Google_Service_YouTube_ChannelListResponse Object 
(
[collection_key:protected] => items 
[etag] => "WFPuK6TsnblcGPcnMex79s42ynQ/sTnuE1bHO-tokx_mFFDt1ybN90g" 
[eventId] => 
[itemsType:protected] => Google_Service_YouTube_Channel 
[itemsDataType:protected] => array 
[kind] => youtube#channelListResponse 
[nextPageToken] => 
[pageInfoType:protected] => Google_Service_YouTube_PageInfo 
[pageInfoDataType:protected] => 
[prevPageToken] => 
[tokenPaginationType:protected] => Google_Service_YouTube_TokenPagination 
[tokenPaginationDataType:protected] => 
[visitorId] => 
[modelData:protected] => Array 
    (
     [pageInfo] => Array 
      (
       [totalResults] => 1 
       [resultsPerPage] => 1 
      ) 

     [items] => Array 
      (
       [0] => Array 
        (
         [kind] => youtube#channel 
         [etag] => "WFPuK6TsnblcGPcnMex79s42ynQ/ecOcHFmWyWQ7ToCD7-B1L36b4L4" 
         [id] => UCQO6uXy5maTpYvSa_yM--Bw 
         [brandingSettings] => Array 
          (
           [channel] => Array 
            (
             [title] => Vasim Padhiyar 
             [showRelatedChannels] => 1 
             [featuredChannelsTitle] => Featured Channels 
             [featuredChannelsUrls] => Array 
              (
               [0] => UCw-TnDmYDQyjnZ5qpVWUsSA 
              ) 

             [profileColor] => #000000 
            ) 

           [image] => Array 
            (
             [bannerImageUrl] => http://s.ytimg.com/yts/img/channels/c4/default_banner-vfl7DRgTn.png 
            ) 

           [hints] => Array 
            (
             [0] => Array 
              (
               [property] => channel.featured_tab.template.string 
               [value] => Everything 
              ) 

             [1] => Array 
              (
               [property] => channel.banner.image_height.int 
               [value] => 0 
              ) 

             [2] => Array 
              (
               [property] => channel.modules.show_comments.bool 
               [value] => True 
              ) 

            ) 

          ) 

        ) 

      ) 

    ) 

[processed:protected] => Array 
    (
    ) 

我通过modelData要循环:受保护的变量来获取通道及其项目数据的列表。它的json对象如此$ yt_profiles-> modelData:protected在访问时不工作。请帮我解决这个问题。 在此先感谢

回答

3

可以达到它作为一个数组:

print_r ($yt_profiles['modelData']); 
0

你的要求:

$titleChannel = $yt_profiles["items"][0]["brandingSettings"]["channel"]["title"]; 

$yt_profiles = $youtube->channels->listChannels('brandingSettings', array(
'mine' => 'true', 
)); 

要存取权限值例如频道标题

符合值bannerImageUrl例如:

$banner = $yt_profiles["items"][0]["brandingSettings"]["image"]["bannerImageUrl"]; 
+0

我的问题是创建循环。你的代码不是动态的。如果我有超过1个频道?我想用动态循环变量$ i替换[0]。例如:for($ i = 0; $ i Kliptu 2014-09-09 05:53:30

0

这是否帮助你吗?

$yt_profiles = $youtube->channels->listChannels('id, brandingSettings', array('mine' => 'true',)); 

    foreach ($yt_profiles['modelData']['items'] as $searchResult) { 
     switch ($searchResult['kind']) { 
     case 'youtube#channel': 
      $channels[]= array('id'=> $searchResult['id'], 
          'brandingSettings'=> $searchResult['brandingSettings']); 
      break; 
     } 
    }