Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Google API-从Oauth2请求令牌返回空令牌_Php_Laravel_Oauth 2.0_Google Api_Google Api Php Client - Fatal编程技术网

Php Google API-从Oauth2请求令牌返回空令牌

Php Google API-从Oauth2请求令牌返回空令牌,php,laravel,oauth-2.0,google-api,google-api-php-client,Php,Laravel,Oauth 2.0,Google Api,Google Api Php Client,对于凭据,我在上创建了一个开发人员帐户,创建了一个项目,然后从API Manager创建了凭据。我使用“google/apiclient”:“1.1.*”包。我认为这是凭证的问题 $OAUTH2_CLIENT_ID = 'XXXXX-rvm1l9b1nvht9je1ic0bbe05ab5gvhbg.apps.googleusercontent.com'; $OAUTH2_CLIENT_SECRET = 'XXXXXXP90L_DLD3Nrc_rT4zGD'; $clie

对于凭据,我在上创建了一个开发人员帐户,创建了一个项目,然后从API Manager创建了凭据。我使用“google/apiclient”:“1.1.*”包。我认为这是凭证的问题

    $OAUTH2_CLIENT_ID = 'XXXXX-rvm1l9b1nvht9je1ic0bbe05ab5gvhbg.apps.googleusercontent.com';
    $OAUTH2_CLIENT_SECRET = 'XXXXXXP90L_DLD3Nrc_rT4zGD';

    $client = new Google_Client();
    $client->setClientId($OAUTH2_CLIENT_ID);
    $client->setClientSecret($OAUTH2_CLIENT_SECRET);
    $client->setScopes('https://www.googleapis.com/auth/youtube');
    $redirect = url('/');
    $client->setRedirectUri($redirect);


    $token = $client->getAccessToken();
    dd($token);

我认为问题在于你没有向谷歌提出认证和取回代币的请求。你应该做:

$client = new Google_Client();
$client->setClientId($OAUTH2_CLIENT_ID);
$client->setClientSecret($OAUTH2_CLIENT_SECRET);
$client->setScopes('https://www.googleapis.com/auth/youtube');
$redirect = url('/');
$client->setRedirectUri($redirect);

//redirect to google server to get the token 
return Redirect::to( $client->createAuthUrl() );
如果身份验证成功,google会将您重定向到您使用
$client->setRedirectUri($redirect)
设置的页面

在该页面中,您可以:

//authenticate using the parameter $_GET['code'] you got from google server
$client->authenticate( $request->input('code') );

//get the access token
$tokens = $client->getAccessToken();

我认为问题在于你没有向谷歌提出认证和取回代币的请求。你应该做:

$client = new Google_Client();
$client->setClientId($OAUTH2_CLIENT_ID);
$client->setClientSecret($OAUTH2_CLIENT_SECRET);
$client->setScopes('https://www.googleapis.com/auth/youtube');
$redirect = url('/');
$client->setRedirectUri($redirect);

//redirect to google server to get the token 
return Redirect::to( $client->createAuthUrl() );
如果身份验证成功,google会将您重定向到您使用
$client->setRedirectUri($redirect)
设置的页面

在该页面中,您可以:

//authenticate using the parameter $_GET['code'] you got from google server
$client->authenticate( $request->input('code') );

//get the access token
$tokens = $client->getAccessToken();
提示:

不要使用:

$client->authenticate($authcode);
$token = $client->getAccessToken();
使用:

如果转储
$token
,这至少允许您查看错误消息。 在“不使用:”示例中,如果
authenticate()
步骤失败,
getAccessToken()
可能返回null。这里的API工作不好。

提示:

不要使用:

$client->authenticate($authcode);
$token = $client->getAccessToken();
使用:

如果转储
$token
,这至少允许您查看错误消息。
在“不使用:”示例中,如果
authenticate()
步骤失败,
getAccessToken()
可能返回null。API在这里做得不好。

它是否请求用户访问?您是否尝试过对api提出请求?如果内存服务,它在实际需要第一个访问令牌之前不会获取第一个访问令牌。它重定向到。它是否请求用户访问?您是否尝试过对api提出请求?如果内存服务,它在实际需要第一个访问令牌之前不会获取第一个访问令牌。它会重定向到。我不知道为什么,但这对我不起作用。你能看看我的问题吗?我也根据你的答案更新了我的尝试。我不知道为什么,但这对我不起作用。你能看看我的问题吗?我也根据你的答案更新了我的尝试。谢谢你。我在调试时遇到了很大的问题,没有任何错误消息。这真的很有帮助+谢谢你。我在调试时遇到了很大的问题,没有任何错误消息。这真的很有帮助+1.