Есть ли sdk/lib для анализа данных gdata (json), возвращаемых Google Contact API v3?

В настоящее время я получаю доступ к контактам Google через API GoogleContact v3. Я использую следующую команду:

"https://www.google.com/m8/feeds/contacts/default/full?access_token=" + token.access_token + "&alt=json&v=3&q=Susan"

Он возвращает мне ответ структуры json в формате gdata.

{
"version": "1.0",
"encoding": "UTF-8",
"feed": {
    "xmlns": "http://www.w3.org/2005/Atom",
    "xmlns$openSearch": "http://a9.com/-/spec/opensearch/1.1/",
    "xmlns$batch": "http://schemas.google.com/gdata/batch",
    "xmlns$gd": "http://schemas.google.com/g/2005",
    "xmlns$gContact": "http://schemas.google.com/contact/2008",
    "gd$etag": "W/\"A0IGQ3gycSt7I2A9XR5WEk4.\"",
    "id": {
        "$t": "[email protected]"
    },
    "updated": {
        "$t": "2017-01-24T06:32:02.699Z"
    },
    "category": [{
        "scheme": "http://schemas.google.com/g/2005#kind",
        "term": "http://schemas.google.com/contact/2008#contact"
    }],
    "title": {
        "$t": "User1 contact"
    },
    "link": [{
        "rel": "alternate",
        "type": "text/html",
        "href": "http://www.google.com/"
    }, {
        "rel": "http://schemas.google.com/g/2005#feed",
        "type": "application/atom+xml",
        "href": "https://www.google.com/m8/feeds/contacts/darewreckk%40gmail.com/full?v=3"
    }, {
        "rel": "http://schemas.google.com/g/2005#post",
        "type": "application/atom+xml",
        "href": "https://www.google.com/m8/feeds/contacts/firstlast%40gmail.com/full?v=3"
    }, {
        "rel": "http://schemas.google.com/g/2005#batch",
        "type": "application/atom+xml",
        "href": "https://www.google.com/m8/feeds/contacts/firstlast%40gmail.com/full/batch?v=3"
    }, {
        "rel": "self",
        "type": "application/atom+xml",
        "href": "https://www.google.com/m8/feeds/contacts/firstlast%40gmail.com/full?alt=json&q=First&max-results=25&v=3"
    }],
    "author": [{
        "name": {
            "$t": "First Last"
        },
        "email": {
            "$t": "[email protected]"
        }
    }],
    "generator": {
        "version": "1.0",
        "uri": "http://www.google.com/m8/feeds",
        "$t": "Contacts"
    },
    "openSearch$totalResults": {
        "$t": "2"
    },
    "openSearch$startIndex": {
        "$t": "1"
    },
    "openSearch$itemsPerPage": {
        "$t": "25"
    },
    "entry": [{
        "gd$etag": "\"QHc9fjVSLyt7I2A9WxBXFUgKRAI.\"",
        "id": {
            "$t": "http://www.google.com/m8/feeds/contacts/firstlast%40gmail.com/base/8"
        },
        "updated": {
            "$t": "2010-01-26T23:59:21.966Z"
        },
        "app$edited": {
            "xmlns$app": "http://www.w3.org/2007/app",
            "$t": "2010-01-26T23:59:21.966Z"
        },
        "category": [{
            "scheme": "http://schemas.google.com/g/2005#kind",
            "term": "http://schemas.google.com/contact/2008#contact"
        }],
        "title": {
            "$t": "FirstName LastName"
        },
        "link": [{
            "rel": "http://schemas.google.com/contacts/2008/rel#photo",
            "type": "image/*",
            "href": "https://www.google.com/m8/feeds/photos/media/first.name%40gmail.com/8?v=3"
        }, {
            "rel": "self",
            "type": "application/atom+xml",
            "href": "https://www.google.com/m8/feeds/contacts/first.name%40gmail.com/full/8?v=3"
        }, {
            "rel": "edit",
            "type": "application/atom+xml",
            "href": "https://www.google.com/m8/feeds/contacts/first.name%40gmail.com/full/8?v=3"
        }],
        "gd$name": {
            "gd$fullName": {
                "$t": "First Last"
            },
            "gd$givenName": {
                "$t": "First"
            },
            "gd$familyName": {
                "$t": "Last"
            }
        },
        "gd$email": [{
            "rel": "http://schemas.google.com/g/2005#other",
            "address": "[email protected]",
            "primary": "true"
        }]
    }, {
        "gd$etag": "\"RX0_cTVSLyt7I2A9WxFTEUUKRwY.\"",
        "id": {
            "$t": "http://www.google.com/m8/feeds/contacts/first.last%40gmail.com/base/7cba75689bbb171"
        },
        "updated": {
            "$t": "2010-04-02T03:47:04.349Z"
        },
        "app$edited": {
            "xmlns$app": "http://www.w3.org/2007/app",
            "$t": "2010-04-02T03:47:04.349Z"
        },
        "category": [{
            "scheme": "http://schemas.google.com/g/2005#kind",
            "term": "http://schemas.google.com/contact/2008#contact"
        }],
        "title": {
            "$t": ""
        },
        "link": [{
            "rel": "http://schemas.google.com/contacts/2008/rel#photo",
            "type": "image/*",
            "href": "LinkUrl"
        }, {
            "rel": "self",
            "type": "application/atom+xml",
            "href": "SelfUrl3"
        }, {
            "rel": "edit",
            "type": "application/atom+xml",
            "href": "EditUrl3"
        }],
        "gd$email": [{
            "rel": "http://schemas.google.com/g/2005#other",
            "address": "[email protected]",
            "primary": "true"
        }]
    }]
}

}

В настоящее время у меня есть ответ и я создаю свой собственный метод для доступа к каждому файлу. Есть ли уже определенная библиотека, которая преобразует это в более читаемый объект?

Например, я предполагаю, что «gd $ name» — это представление данных Google для имени. Есть ли способ преобразовать его в контактный объект gData, который дает мне поле имени без необходимости писать собственный парсер gData?

Спасибо, Дерек.


person darewreck    schedule 24.01.2017    source источник


Ответы (1)


Справочник по API можно найти здесь: https://developers.google.com/google-apps/contacts/v3/

.NET SDK (клиентскую библиотеку) можно найти здесь: https://www.nuget.org/packages/Google.GData.Contacts/

Примеры использования клиентской библиотеки можно найти в справочнике по API.

person Aaron Hoffman    schedule 01.07.2017