下午好,我刚刚创建了一个页面,可以导入谷歌联系人并使用OAuth2显示它们。我已经使用了google-api-php-client。我可以成功获取所有联系人的详细信息并显示它们。但是,我的主要目标是能够编辑谷歌联系人的详细信息,并根据特定的用户操作从我的codeigniter应用程序添加新的谷歌联系人。我想知道我需要写什么函数以及在相应的视图中做什么。请帮我。非常感谢你提前。
代码:
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
session_start(); ?>
<!DOCTYPE html>
<html class="no-js" lang="en"/>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>Google Contacts API</title>
</head>
<body>
<h2>Google Contacts API v3.0</h2>
<?php
require_once 'lib/google-api-client/autoload.php';
require 'lib/google-api-client/Config.php';
require 'lib/google-api-client/Google_Client.php';
$client_id = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.bbbbbb.cccccccccccc.com';
$client_secret = 'e3fsfds4gfg23ha93kmKFkfgK';
$redirect_uri = 'http://ccccccccccccccccccc.com/rddddddddddd/index.php';
$client = new Google_Client();
$client -> setApplicationName('contact');
$client -> setClientid($client_id);
$client -> setClientSecret($client_secret);
$client -> setScopes('https://www.google.com/m8/feeds');
$client -> setRedirectUri($redirect_uri);
$client -> setAccessType('online');
if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['token'] = $client->getAccessToken();
header('Location: ' . $redirect_uri);
}
if(!isset($_SESSION['token']))
{
$url = $client->createAuthUrl($_SESSION['token']);
echo '<a href="' . $url . '">Import Google Contacts</a>';
}else{
$client->setAccessToken($_SESSION['token']);
$token = json_decode($_SESSION['token']);
$token->access_token;
$curl = curl_init("https://www.google.com/m8/feeds/contacts/default/full?alt=json&max-results=1000&access_token=" . $token->access_token);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$contacts_json = curl_exec($curl);
curl_close($curl);
$contacts = json_decode($contacts_json, true);
$return = array();
foreach($contacts['feed']['entry'] as $contact){
$return[] = array(
'name' => $contact['title']['$t'],
'email' => isset($contact['gd$email'][0]['address']) ? $contact['gd$email'][0]['address'] : false,
'phone' => isset($contact['gd$phoneNumber'][0]['$t']) ? $contact['gd$phoneNumber'][0]['$t'] :false,
);
}
echo "<pre>";
var_dump($return);
echo "</pre>";
}
?>
</body>
</html>
请随时询问更多详情。
答案 0 :(得分:0)
要更新联系人,请首先检索联系人条目(您已经完成),修改数据并将授权的PUT请求发送到联系人的编辑URL,并在主体中修改联系人条目。
网址:https://www.google.com/m8/feeds/contacts/userEmail/full/{contactId}
要创建新联系人,请向用户的联系人供稿网址发送授权的POST请求,并附上正文中的联系人数据。
网址:https://www.google.com/m8/feeds/contacts/{userEmail}/full