我正在使用 console.cloud.google。我生成了客户端 ID 和密码,并将其保存到 json 中,但似乎无法访问刷新令牌。
/**
* @Route("/oauth2callback", name="oauth2-callback")
* @Method("GET")
*/
public function index(Request $request)
{
$code = $request->query->get('code');
$client = new Google\Client();
$client->setAuthConfig(__DIR__ . '/../AdsApi/client_secrets.json');
$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback');
$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);
// Handle authorization flow from the server.
if (! isset($code)) {
$auth_url = $client->createAuthUrl();
header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
} else {
$client->authenticate($code);
$_SESSION['access_token'] = $client->getAccessToken();
$_SESSION['refresh_token'] = $client->getRefreshToken();
$redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/';
header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}
return new Response();
}
函数 getAccessToken 返回一个数组,但 getRefreshToken 返回 null。有办法解决吗?
谢谢。
答案 0 :(得分:1)
好的,找到问题了。如果已经发送(第一次),Google 不会发送另一个刷新令牌。创建了一个新项目,它正在运行。