我正在尝试通过google plus api获取Youtube用户名。我使用来自Plus ang YT api的php服务,我正在使用symfony 2.获取访问令牌工作正常,我不会把它放在这里。 谷歌加服务也没有问题,授权后我得到了我需要的所有信息。在YT的情况下,我收到错误: insufficientPermissions错误 所以我在这里检查我的访问令牌范围: https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ACCESS_TOKEN 我的访问令牌的范围仅适用于Google Plus,我无法强制谷歌Api php clinet使YT范围也可用。 有什么想法吗?
这是我的代码:
require_once '../src/google_api_php_client/src/Google_Client.php';
require_once '../src/google_api_php_client/src/contrib/Google_PlusService.php';
require_once '../src/google_api_php_client/src/contrib/Google_YouTubeService.php';
$client = new Google_Client();
$client->setScopes('https://www.googleapis.com/auth/youtube https://www.googleapis.com/auth/plus');
$youtube = new Google_YouTubeService($client);
if(!empty($allR['code'])){
$client->setClientId('clientIDxxx');
$client->setClientSecret('SecretXXX');
$client->setRedirectUri('postmessage');
$client->authenticate($allR['code']);
$token = json_decode($client->getAccessToken());
}
答案 0 :(得分:0)
首先,请确保您已为devconsole启用了YouTube Data API v3。
然后尝试从devconsole设置客户端ID和密码,而不是设置范围。
$client = new Google_Client();
$client->setClientId($OAUTH2_CLIENT_ID);
$client->setClientSecret($OAUTH2_CLIENT_SECRET);
$redirect = filter_var('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'],
FILTER_SANITIZE_URL);
$client->setRedirectUri($redirect);
// YouTube object used to make all Data API requests.
$youtube = new Google_YoutubeService($client);
$plus = new $youtube = new Google_PlusService($client);