2

ZendFrameworkとPHPを介してGoogleに連絡先を追加することに成功しました。CURLでもこれができるようにしたいと思います。誰かがこれを行う方法についての良いチュートリアルを持っていますか?

4

1 に答える 1

4

私はついにCURLとアクセストークンを介してこれを行うことができました。まず、OAuthプレイグラウンドは非常に便利だと思います。これを行うために必要な2つの主要なコンポーネントがあります。最初に、XMLを正しくフォーマットする必要があります。次に、アクセストークンをCURLインスタンスのヘッダーに配置する必要があります。以下は私が使用したコードで、問題なく動作します。

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とヘッダーに必要な適切なパラメーターを見つけるのに役立ちます。

于 2013-01-28T22:09:21.637 に答える