The difference is in the function (method) calls:
OAuthRequest::from_consumer_and_token() and
sign_request() where you need to send the token
Changes are in bold, this code is ugly but tested with 3-legged... (just
change the app and user key/secrets)
<?php
require_once('oauth.php');
header("Content-type: text/html; charset=utf-8");
$CONSUMER_KEY = 'myDomain.com';
$CONSUMER_SECRET = 'MySecret';
$csync = new Csync;
$csync->init($CONSUMER_KEY,$CONSUMER_SECRET);
$retArr = $csync->GetUserContacts();
$xml_parser = xml_parser_create();
echo "contacts are <br>\n" . $retArr['xml'];
class Csync
{
public $consumer = null;
public function init($CONSUMER_KEY,$CONSUMER_SECRET)
{
$this->consumer = new OAuthConsumer($CONSUMER_KEY, $CONSUMER_SECRET,
NULL);
if ($this->consumer == null)
return ("consumer not set<br/>");
}
public function GetUserContacts()
{
//group
$base_feed = 'https://www.google.com/m8/feeds/contacts/default/full';
$params = array('max-results' => 1);
$xmlStr = $this->execUrl($base_feed,$params,"GET");
return($xmlStr);
}
private function execUrl($base_feed,$params,$method, $xml=null)
{
if ($this->consumer == null)
return ("Call init first");
* $token->key = "1/AccessToken_J3Vp9kXyZcU";*
* $token->secret = "OHkk-AccessSecret";*
$request = OAuthRequest::from_consumer_and_token($this->consumer,*$token
*, $method, $base_feed, $params);
// Sign the constructed OAuth request using HMAC-SHA1
$request->sign_request(new OAuthSignatureMethod_HMAC_SHA1(),
$this->consumer,* $token*);
// Make signed OAuth request to the Contacts API server
$url = $base_feed . '?' . $this->implode_assoc('=', '&', $params);
$retArr = $this->send_request($request->get_normalized_http_method(),
$url, $request->to_header(),$xml);
return($retArr);
}
private function implode_assoc($inner_glue, $outer_glue, $array) {
$output = array();
foreach($array as $key => $item) {
$output[] = $key . $inner_glue . urlencode($item);
}
return implode($outer_glue, $output);
}
private function send_request($http_method, $url, $auth_header=null,
$postData=null)
{
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HEADER, 1 );
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
echo "header : $auth_header \n\n";
switch($http_method) {
case 'GET':
if ($auth_header) {
echo "INSIDE GET\n\n";
curl_setopt($curl, CURLOPT_HTTPHEADER,
array($auth_header,'Content-Type: application/atom+xml', 'GData-Version:
2.0'));
}
break;
case 'POST':
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:
application/atom+xml',
$auth_header));
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);
break;
case 'PUT':
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:
application/atom+xml',
$auth_header));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $http_method);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);
break;
case 'DELETE':
curl_setopt($curl, CURLOPT_HTTPHEADER, array($auth_header));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $http_method);
break;
}
$response = curl_exec($curl);
print_r(curl_getinfo($curl, CURLINFO_HEADER_OUT ));
if (!$response) {
$response = curl_error($curl);
}
curl_close($curl);
$xml = strstr($response,"<");
$header = substr($response,0,strpos($response,"<"));
//echo $header . "\n";
flush();
return array('headers' => $header, 'xml' => $xml);
}
}
?>
--
You received this message because you are subscribed to the Google
Groups "Google Contacts, Shared Contacts and User Profiles APIs" group.
To post to this group, send email to
[email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://code.google.com/apis/contacts/community/forum.html