Google通讯录API不返回系统组

时间:2011-08-27 11:03:21

标签: php android-contacts google-contacts

https://www.google.com/m8/feeds/groups/default/full/6

这应返回系统组“我的联系人”中所有联系人的列表,但会显示“未找到组”。

当我请求所有联系人组的列表时,它只返回用户定义的组。

当我请求所有联系人的列表时,它会给我所有联系人,但它不会告诉我他们在哪个组,除非它是用户定义的组。

关于我做错了什么的想法?

编辑: 我在这里重定向

https://accounts.google.com/o/oauth2/auth?client_id=819467938951.apps.googleusercontent.com&redirect_uri=http://subomain.website.com/back.html&scope=https://www.google.com/m8/feeds/&response_type=code

这是back.html的源代码(从http://php.dzone.com/news/execute-http-post-using-php-cu修改)

<?php
$token = $_GET["code"];

$url = 'https://accounts.google.com/o/oauth2/token';
$fields = array(
        'code'=>urlencode($token),
        'client_id'=>urlencode("819467938951.apps.googleusercontent.com"),
        'client_secret'=>urlencode("secret key"),
        'redirect_uri'=>urlencode("http://subdomain.website.com/back.html"),
        'grant_type'=>urlencode("authorization_code")
    );

//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

$result=json_decode($result, true);

$access_token = $result["access_token"];

print_r(file_get_contents("https://www.google.com/m8/feeds/groups/default/full/6?access_token=" . $access_token));
?>

1 个答案:

答案 0 :(得分:4)

retrieve all contacts from a group in PHP

一旦我设置v = 2,系统组终于出现了!

https://www.google.com/m8/feeds/groups/default/full?v=2

要获取群组中的联系人,请设置群组=群组网址

https://www.google.com/m8/feeds/contacts/default/full?v=2&group=http://www.google.com/m8/feeds/groups/default/base/6