Ejemplo n.º 1
0
def fetch_contacts():
    email = request.args.get('email')
    access_token = request.args.get('access_token')
    user = User.get_by_id(email)
    headers = {'Authorization': 'Bearer {}'.format(access_token)}
    req_uri = 'https://www.google.com/m8/feeds/contacts/default/full?alt=json&max-results=25000&v=3.0'
    r = urlfetch.fetch(req_uri, headers=headers, method='GET')
    data = json.loads(r.content)

    contact_list = data.get('feed', {}).get('entry', [])  # List

    ndb.delete_multi(
        Contacts.query(Contacts.owner == email).fetch(keys_only=True))

    for contact in contact_list:

        if ('gd$phoneNumber' not in contact): continue

        name = contact.get('gd$name', {}) \
            .get('gd$fullName', {}) \
            .get('$t', '')
        numbers = [
            number.get('$t', '')
            for number in contact.get('gd$phoneNumber', [])
        ]

        Contacts.add_contact(email, name, numbers)

    user.import_status = "imported"
    user.put()

    return "", 200