参数太少,无法运行GoogleClient::authenticate(),在Google .php第41行传递了0,



你好,我试图在CodeIgniter中使用Google api客户端PHP获得访问令牌

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

Too few arguments to function GoogleClient::authenticate(), 0 passed in E:wampwwwmyprojectappControllersGoogle.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()以获得$_GET['code']

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

if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
return $client->getAccessToken();
} else {
$redirect = $client->createAuthUrl();
header('Location: ' . $redirect);
exit();
}

如果没有请求,可以先检查$_GET['code']是否存在。

希望这对你有帮助。

最新更新