函数Google\Client::authenticate()的参数太少,0在第41行的Google.php中传递,预期正好是1

函数Google\Client::authenticate()的参数太少,0在第41行的Google.php中传递,预期正好是1,php,google-api,google-oauth,google-api-php-client,Php,Google Api,Google Oauth,Google Api Php Client,您好,我正在尝试使用CodeIgniter中的Google api客户端PHP获取访问令牌 当我加载这个localhost:8080/google/callback时,我得到了以下错误 Too few arguments to function Google\Client::authenticate(), 0 passed in E:\wamp\www\myproject\app\Controllers\Google.php on line 41 and exactly 1 expected

您好,我正在尝试使用CodeIgniter中的Google api客户端PHP获取访问令牌

当我加载这个localhost:8080/google/callback时,我得到了以下错误

Too few arguments to function Google\Client::authenticate(), 0 passed in E:\wamp\www\myproject\app\Controllers\Google.php on line 41 and exactly 1 expected 
这是代码

public function callback(){
define('GOOGLE_CLIENT_ID', 'XXXX']);
define('GOOGLE_CLIENT_SECRET', 'XXXX');


// Create Client Request to access Google API
$client = new Client();
$client->setApplicationName('Mysite.dom.ain');
$client->setClientId(GOOGLE_CLIENT_ID);
$client->setClientSecret(GOOGLE_CLIENT_SECRET);
$client->setRedirectUri('http://localhost:8080/google/callback');
$client->addScope('https://www.googleapis.com/auth/youtube https://www.googleapis.com/auth/youtube.upload');
$client->setAccessType('offline');        // offline access
$client->setIncludeGrantedScopes(true);   // incremental auth
$client->setHttpClient(new GC(['verify' => false]));

        $client->authenticate();
        
    return $client->getAccessToken();
}

如果有人能帮我排序,那就太好了。

您需要将用户重定向到
createAuthUrl()
以获取
$\u get['code']

你可以简单地按照下面的方法来做

if (isset($_GET['code'])) {
    $client->authenticate($_GET['code']);
    return $client->getAccessToken();
} else {
$redirect = $client->createAuthUrl();
header('Location: ' . $redirect);
        exit();
}
如果没有请求,您可以首先检查
$\u GET['code']
是否存在


希望这可能对您有所帮助。

该函数需要传入一个
$code
。@PtrTon我应该在$code中分配什么。。?