通过PHP CURL添加Google联系人 [英] Add Google Contact via PHP CURL

查看:74
本文介绍了通过PHP CURL添加Google联系人的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经能够通过Zend Framework和PHP向Google添加联系人。我也希望能够通过CURL做到这一点。有人有关于如何执行此操作的好教程吗?

I've successfully been able to add a contact to google through Zend Framework and PHP. I want to be able to do this through CURL as well. Does anyone have a good tutorial on how to do this?

推荐答案

我终于可以通过CURL和访问令牌来完成此操作。首先,我想说 OAuth游乐场非常有用。为此,需要两个主要组件:首先,您需要正确设置XML格式。其次,您需要将访问令牌放入CURL实例的标头中。下面是我使用的代码,它可以正常工作:

I was finally able to do this via CURL and an access token. First, I would say that the OAuth Playground is very useful. There are 2 main components needed to do this: first, you need your XML formatted correctly. Secondly, you need your access token put into the header of the CURL instance. Below is the code I used, and it works just fine:

session_start();
$temp = json_decode($_SESSION['token'], true);
$access = $temp['access_token'];

$contactXML = '<?xml version="1.0" encoding="utf-8"?>
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005">
<atom:category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/contact/2008#contact"/>
<gd:name>
<gd:givenName>Jackie</gd:givenName>
<gd:fullName>Jackie Frost</gd:fullName>
<gd:familyName>Frost</gd:familyName>
</gd:name>
<gd:email rel="http://schemas.google.com/g/2005#home" address="jackfrost@gmail.com"/>
<gd:phoneNumber rel="http://schemas.google.com/g/2005#home" primary="true">1111111111</gd:phoneNumber>
</atom:entry>';

$headers = array(
'Host: www.google.com',
'Gdata-version: 3.0',
'Content-length: '.strlen($contactXML),
'Content-type: application/atom+xml',
'Authorization: OAuth '.$access
);

$contactQuery = 'https://www.google.com/m8/feeds/contacts/default/full/';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $contactQuery );
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $contactXML);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_exec($ch);

我希望这对寻找此答案的其他人有所帮助。在操场上玩耍将帮助您找到正确的URL以及标题中所需的正确参数。

I hope this helps anyone else who is looking for this answer. Playing around with the playground will help you find the right URLs to use and the right parameters required in the header.

这篇关于通过PHP CURL添加Google联系人的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆