我尝试使用Google API进行联系,但当我想要检索所有联系人时,我有一个错误401('无效的证书')...我不明白,因为令牌已生成但我无法撤回联系人。
<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);
}
?>
&#13;
感谢您的帮助
答案 0 :(得分:3)
您必须更正您的CURL网址使用access_token而不是网址中的令牌。
$curl = curl_init('https://www.google.com/m8/feeds/contacts/default/full?alt=json&max-results=50&access_token ='.$token->access_token);
答案 1 :(得分:2)
为了获取数据,您需要进行身份验证,因为您似乎知道。但是,您使用&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);