我是谷歌oauth
和openid
连接的新用户,假设我需要服务帐户,用户在我的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 :(得分:0)
您可能会对某些条款感到困惑。 Oauth2会提示用户进行身份验证,询问用户是否可以访问您的YouTube数据。开发人员将获得一个刷新令牌,可用于检索新的访问令牌并访问用户YouTube频道上的数据。
服务帐户已获得预授权。我可以获取服务帐户电子邮件地址并授予其访问我的Google云端硬盘帐户中的文件夹的权限,然后可以读取和写入该文件夹。
YouTube API不支持服务帐户。
对于YouTube,您需要在自己保存刷新令牌后对代码进行身份验证,然后将该刷新令牌添加到您的代码中。然后,当其他用户希望将视频上传到您的帐户时,您可以使用刷新令牌获取访问令牌并上传文件。
这里有一个很好的问题,如何在php客户端库中使用刷新令牌How to refresh token with Google API client?
$client->refreshToken($refreshToken);
$newtoken=$client->getAccessToken();