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