(PHP) Oauth2.0 - 错误 401 Google 联系人 API
(PHP) Oauth2.0 - Error 401 Google Contacts API
我正在尝试 Google API 获取联系人,但是当我想检索所有联系人时,出现错误 401 ('Invalid Credenticials')...我不明白,因为已生成令牌,但我无法检索联系人。
<p style="background-color:red;">
<a href="destroy.php">se deconnecter</a>
<p>
<?php
session_start();
require 'lib/google-api-client/Google/autoload.php';
$client = new Google_Client();
$client->setApplicationName('Application de test');
$client->setClientId('xxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com');
$client->setClientSecret('xxxxxxxxxxxxxxxxxxxx');
$client->setRedirectUri('http://localhost/Gmail/index.php');
//Acces aux données seulement quand l'user est en ligne
$client->setAccessType('online');
//configuration des données auxquels on veut avoir accés
$client -> setScopes('https://www.google.com/m8/feeds');
if(isset($_GET['code'])){
$client->authenticate($_GET['code']);
$_SESSION['token'] = $client->getAccessToken();
header('Location:http://localhost/Gmail/index.php');
}
if(!isset($_SESSION['token'])){
//Generation du lien pour s'authentifier via l'api Google
$url = $client->createAuthUrl();
?>
<a href="<?= $url ?>">Importer Google contacts</a>
<?php
}else{
$client->setAccessToken($_SESSION['token']);
$token = json_decode($_SESSION['token']);
var_dump($token->access_token);
var_dump($client->getAccessToken());
$curl = curl_init('https://www.google.com/m8/feeds/contacts/default/full?alt=json&max-results=50&token='.$token->access_token);
curl_setopt($curl , CURLOPT_RETURNTRANSFER , true);
curl_setopt($curl , CURLOPT_SSL_VERIFYPEER , false);
curl_setopt($curl , CURLOPT_TIMEOUT , 10);
$contact_json = curl_exec($curl);
var_dump($contact_json);
curl_close($curl) ;
$contacts = json_decode($contact_json);
var_dump($contacts);
}
?>
enter image description here
感谢您的帮助
为了取回数据,您需要像您所知道的那样进行身份验证。但是,您正在使用 &token=
标记访问令牌
正确的做法是&access_token=
示例:
$curl = curl_init('https://www.google.com/m8/feeds/contacts/default/full?alt=json&max-results=50&access_token='.$token->access_token);
您必须更正您的 CURL url 使用 access_token 而不是 url 中的令牌。
$curl = curl_init('https://www.google.com/m8/feeds/contacts/default/full?alt=json&max-results=50&access_token ='.$token->access_token);
我正在尝试 Google API 获取联系人,但是当我想检索所有联系人时,出现错误 401 ('Invalid Credenticials')...我不明白,因为已生成令牌,但我无法检索联系人。
<p style="background-color:red;">
<a href="destroy.php">se deconnecter</a>
<p>
<?php
session_start();
require 'lib/google-api-client/Google/autoload.php';
$client = new Google_Client();
$client->setApplicationName('Application de test');
$client->setClientId('xxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com');
$client->setClientSecret('xxxxxxxxxxxxxxxxxxxx');
$client->setRedirectUri('http://localhost/Gmail/index.php');
//Acces aux données seulement quand l'user est en ligne
$client->setAccessType('online');
//configuration des données auxquels on veut avoir accés
$client -> setScopes('https://www.google.com/m8/feeds');
if(isset($_GET['code'])){
$client->authenticate($_GET['code']);
$_SESSION['token'] = $client->getAccessToken();
header('Location:http://localhost/Gmail/index.php');
}
if(!isset($_SESSION['token'])){
//Generation du lien pour s'authentifier via l'api Google
$url = $client->createAuthUrl();
?>
<a href="<?= $url ?>">Importer Google contacts</a>
<?php
}else{
$client->setAccessToken($_SESSION['token']);
$token = json_decode($_SESSION['token']);
var_dump($token->access_token);
var_dump($client->getAccessToken());
$curl = curl_init('https://www.google.com/m8/feeds/contacts/default/full?alt=json&max-results=50&token='.$token->access_token);
curl_setopt($curl , CURLOPT_RETURNTRANSFER , true);
curl_setopt($curl , CURLOPT_SSL_VERIFYPEER , false);
curl_setopt($curl , CURLOPT_TIMEOUT , 10);
$contact_json = curl_exec($curl);
var_dump($contact_json);
curl_close($curl) ;
$contacts = json_decode($contact_json);
var_dump($contacts);
}
?>
感谢您的帮助
为了取回数据,您需要像您所知道的那样进行身份验证。但是,您正在使用 &token=
正确的做法是&access_token=
示例:
$curl = curl_init('https://www.google.com/m8/feeds/contacts/default/full?alt=json&max-results=50&access_token='.$token->access_token);
您必须更正您的 CURL url 使用 access_token 而不是 url 中的令牌。
$curl = curl_init('https://www.google.com/m8/feeds/contacts/default/full?alt=json&max-results=50&access_token ='.$token->access_token);