使用YouTube / GooglePlus API查找YouTube用户名

时间:2013-05-02 05:46:22

标签: php youtube-api google-plus

我对Stack Overflow相当新,所以如果我做错了,请告诉我;

我已使用Google+ API设置我的网站 - 要登录,用户点击“使用Google+登录”按钮并登录。

这一切都很好,但我想知道我是否可以将此登录流程与YouTube API集成,这样当用户点击按钮登录时,我也可以收集YouTube信息。

我已经在Google API控制台上设置了YouTube Analytics和数据API,我只需要一个代码段来存储YouTube用户名。

预期行为:

  1. 网址为“youtube.com/some-user”的用户使用Google +
  2. 登录
  3. Google+身份验证密钥已输入某些脚本
  4. 脚本连接到YouTube API并返回用户名(例如$ youtube_user ='some-user')
  5. 我的网站获取此信息并继续使用脚本

2 个答案:

答案 0 :(得分:3)

您可以使用YouTube API执行此操作。您需要做的是为登录按钮添加一个额外的范围。我建议你使用以下范围:

https://www.googleapis.com/auth/youtube.readonly

这样做是因为您不会管理任何人的YouTube帐户,只是查看他们的个人数据(例如,为他们的YouTube视频提供链接或嵌入代码)。

接下来,您需要使用客户端库对YouTube执行API调用。对于实验,您可以use the API explorer。要查看您自己的信息,请授权该请求,将该部分设置为“snippet”(无引号),然后将我的设置为true。

the PHP Google API client library下载“youtube”,“v3”静态类,然后通过代码片段将调用作为您想要的部分并将“我的”设置为true。

要列出当前用户的视频,有an example that ships with the PHP client library。以下更改将列出用户的活动:

  // Exchange the OAuth 2.0 authorization code for user credentials.         
  $client->authenticate($code);                                              
  $token = json_decode($client->getAccessToken());

  ...                         

  $activities = $youtube->activities->listActivities('snippet', array(       
    'mine' => 'true',                                                        
  ));

  foreach ($activities['items'] as $activity) {                              
    error_log(serialize($activity));                                         
  }            

答案 1 :(得分:1)

在获取OAuth 2凭据以发出请求方面,

类的答案很明显。就实际使用的PHP代码而言,您可以使用this example作为起点(使用this client library),并修改第40行以阅读

$channelsResponse = $youtube->channels->listChannels('snippet', array(
  'mine' => 'true',
));

然后您可以通过$channelsResponse['items'][0]['snippet']['title']访问频道的标题。请注意,可以关联Google+帐户和YouTube频道,如果已完成,则频道的标题将与Google+帐户的显示名称相同。如果这是一个未关联的YouTube频道,则会返回该频道的旧用户名。