当我下载json时,我已经创建了一个OAuth 2.0客户端ID,如下所示:
{
"web": {
"client_id": "topsecretstuff.apps.googleusercontent.com",
"project_id": "health-42",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_secret": "GOCSPX-topsecretstuff",
"redirect_uris": [
"https://topsecret.domain.tld/oauth2callback.php",
"https://topsecret.domain.tld/googlelogin.php"
]
}
}
我正在try 这样设置OAuth身份验证
$client = new Google\Client();
$authfile = 'somepath/client_secret.json';
$client->setAuthConfig($authfile);
$client->setRedirectUri('https://topsecret.domain.tld/oauth2callback.php');
$client->setAccessType('offline'); // offline access
$client->setIncludeGrantedScopes(true); // incremental auth
$client->addScope(Google\Service\Fitness::FITNESS_ACTIVITY_READ);
$auth_url = $client->createAuthUrl();
header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
if (isset($_SESSION['access_token']) && $_SESSION['access_token'])
{
$client->setAccessToken($_SESSION['access_token']);
echo "Ingelogd met access tolken: " . $_SESSION['access_token'];
}
else
{
$redirect_uri = 'https://topsecret.domain.tld/oauth2callback.php';
header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}
但当它打开的时候,我得到了
Fatal error: Uncaught Google_Exception: Invalid client secret JSON file. in somepath/lib/vendor/google/apiclient/src/Google/Client.php:171
Stack trace:
#0 somepath/client.php(10): Google_Client->setAuthConfig('/somepath...')
#1 somepath/googlelogin.php(32): include_once('/somepath...')
#2 {main}
thrown in somepath/lib/vendor/google/apiclient/src/Google/Client.php on line 171
我在这里找到了一些有相同问题的主题,但所有建议下载类型为Other的json文件的人都找不到该选项
My o auth2 config at google looks like this
并且在下载时没有其他下载选项:
只需1个选项即可下载json
最大的问题是,我做错了什么?