我对Stack Overflow相当新,所以如果我做错了,请告诉我;
我已使用Google+ API设置我的网站 - 要登录,用户点击“使用Google+登录”按钮并登录。
这一切都很好,但我想知道我是否可以将此登录流程与YouTube API集成,这样当用户点击按钮登录时,我也可以收集YouTube信息。
我已经在Google API控制台上设置了YouTube Analytics和数据API,我只需要一个代码段来存储YouTube用户名。
预期行为:
答案 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)
类的答案很明显。就实际使用的PHP代码而言,您可以使用this example作为起点(使用this client library),并修改第40行以阅读
$channelsResponse = $youtube->channels->listChannels('snippet', array(
'mine' => 'true',
));
然后您可以通过$channelsResponse['items'][0]['snippet']['title']
访问频道的标题。请注意,可以关联Google+帐户和YouTube频道,如果已完成,则频道的标题将与Google+帐户的显示名称相同。如果这是一个未关联的YouTube频道,则会返回该频道的旧用户名。