2017-05-09 150 views
0

我是新来的谷歌oauthopenid连接,可以说我需要服务帐户,用户在我的YouTube频道中存储视频,我创建了服务,如docs.but所示,但我不知道如何获得访问令牌可以说,我这样的代码如何从服务帐户获取访问令牌

$param = $this->getParameter('kernel.root_dir').'/xxxx.json'; 
    $client = new \Google_Client(); 
    $client->setClientId('xxxxxxxx'); 
    $client->setScopes('https://www.googleapis.com/auth/youtube'); 
    $client->setRedirectUri('http://localhost:8000/youtube/1/token'); 
    putenv('GOOGLE_APPLICATION_CREDENTIALS='.$param.''); 
    $authurl = $client->createAuthUrl(); 
    $youtube = new \Google_Service_YouTube($client); 
    file_get_contents($authurl); 

当我运行file_get_contents($authurl)正在逐渐401 error,我在这里做什么错误?

回答

0

您可能会对几个术语感到困惑。 Oauth2提示用户进行身份验证,要求用户可以访问您的YouTube数据。开发人员将获得刷新令牌,用于检索新的访问令牌并访问用户YouTube频道上的数据。

服务帐号是预先授权的。我可以获取服务帐户的电子邮件地址,并授予其访问我的Google云端硬盘帐户上的文件夹的权限,然后可以读取并写入该文件夹。

YouTube API不支持服务帐户。

对于YouTube,您需要先验证自己的代码,然后保存刷新令牌,然后将该令牌添加到您的代码中。然后,当其他用户希望将视频上传到您的帐户时,您可以使用刷新令牌获取访问令牌并上传文件。

有一个很好的问题,这里有如何使用刷新标记与PHP客户端库How to refresh token with Google API client?

$client->refreshToken($refreshToken); 
$newtoken=$client->getAccessToken(); 
+0

感谢的人,是疗法任何生命时间刷新令牌,并且是疗法任何理由的YouTube不支持服务帐户? –

+0

刷新令牌*应该*不会过期,但他们可以,你将不得不留意它,并通知自己,如果它。如果在六个月内未使用,它将会过期。除此之外,你应该是安全的。 – DaImTo

+1

好的,谢谢你:-) –

相关问题