在 php google 中获取 <gd:name> 而不是 <title> 联系 api

Getting <gd:name> instead of <title> in php google contact api

我尝试了不同的方法来获取 familyName 或 givenName 等数据的结构化数据...但我失败了。

例如我尝试修改这段代码rapidwebltd/php-google-contacts-v3-api

这是一个示例:

$contactGDNodes=$xmlContactsEntry->children('http://schemas.google.com/g/2005');

foreach ($contactGDNodes as $key=> $value) {
    switch ($key) {
        case 'organization':
            $contactDetails[$key]['orgName']=(string) $value->orgName;
        $contactDetails[$key]['orgTitle']=(string) $value->orgTitle;
        break;
        /*  case 'name':
                $contactDetails['sName']['familyName'] = (string) $value->familyName;
                $contactDetails['sName']['givenName'] = (string) $value->givenName;
                $contactDetails['sName']['fullName'] = (string) $value->fullName;
                break;      
            case 'structuredPostalAddress':
                $contactDetails[$key]['city'] = (string) $value->city;
                break;      */
        case 'email':
            $attributes=$value->attributes();
        $emailadress=(string) $attributes['address'];
        $emailtype=substr(strstr($attributes['rel'], '#'), 1);
        $contactDetails[$key][$emailtype]=$emailadress;
        break;

'organization' 或 'email' 的数据完美运行。注释中是我添加的代码 "unseless" 因为数据不可用。实际上,使用 var_dump 的 $contactGDNodes,我清楚地看到我正在寻找的数据不存在......你知道我错过了什么吗?

非常感谢

快速浏览一下您正在使用的 "v3" 库表明它实际上正在将请求发送到 API 的版本 1,而不是版本 3。将 v=3 添加到 URL 参数列表以调用包含名称的正确版本。如果原始 XML 响应中没有姓名,则联系人本身没有姓名。

对于同样问题感兴趣的人,?v=3 必须这样实现:

$req = new \Google_Http_Request('https://www.google.com/m8/feeds/contacts/default/full?v=3&max-results=10000&updated-min=2007-03-16T00:00:00');