2016-10-29 4 views
1

Я хотел бы создать контакт с API Google и Python3Создать контакт Google с Python3

но GData seemsnot быть совместимы с Python3. Как: AttributeError: «функция» объект не имеет атрибута «FUNC_NAME»

Кто-нибудь есть образец, который работает на том, как создать контакт с Google API в Python3?

благодаря

ответ

1

Во-первых, у вас установлен клиент питона GData с pip, или с pip3? Согласно Google's repository, в котором говорится,

Python 3.3+ is also now supported! However, this library has not yet been > used as thoroughly with Python 3, so we'd recommend testing before deploying with Python 3 in production,

вы можете использовать PIP3, как pip3 install google-api-python-client, переустанавливать. Как только это прояснилось см ниже модифицированный пример кода-блок для того, как создать контакт, только их имя, адрес электронной почты и номер телефона с Python 3:

import atom.data 
import gdata.data 
import gdata.contacts.client 
import gdata.contacts.data 

gd_client = gdata.contacts.client.ContactsClient(source='YOUR_APPLICATION_NAME') 

def create_contact(gd_client): 
    new_contact = gdata.contacts.data.ContactEntry() 

# Set the contact's name. 
    new_contact.name = gdata.data.Name(
     given_name=gdata.data.GivenName(text='First'), 
     family_name=gdata.data.FamilyName(text='Last'), 
     full_name=gdata.data.FullName(text='Full')) 
    new_contact.content = atom.data.Content(text='Notes') 

# Set the contact's email addresses. 
    new_contact.email.append(gdata.data.Email(address='[email protected]',\ 
     primary='true', rel=gdata.data.WORK_REL, display_name='E. Bennet')) 
    new_contact.email.append(gdata.data.Email(address='[email protected]',\ 
     rel=gdata.data.HOME_REL)) 

# Set the contact's phone numbers. 
    new_contact.phone_number.append(gdata.data.PhoneNumber(text='(206)555-1212', 
     rel=gdata.data.WORK_REL, primary='true')) 
    new_contact.phone_number.append(gdata.data.PhoneNumber(text='(206)555-1213', 
     rel=gdata.data.HOME_REL)) 

# Send the contact data to the server. 
    contact_entry = gd_client.CreateContact(new_contact) 
    print ("Contact's ID: {}".format(contact_entry.id.text)) 
    return contact_entry 
+1

но как авторизуйтесь? и да, я установил gdata с pip3, но есть еще ошибка от python2 – user462794

0

только для чтения доступ к контактам, Google построил новый API People, который отлично работает с Python3 в google-api-python-client. Однако для доступа на запись вам необходимо использовать более старый формат GData.

Короткий ответ на ваш вопрос, что вы никогда не сможете получить GData работать с Python3, поскольку GData-питон-клиент больше не поддерживается и никогда не имел поддержки Python3 построен в (см https://github.com/google/gdata-python-client/issues/29)

Однако не всякая надежда потеряна! Вы все равно можете напрямую обращаться к API REST Google. В частности, для создания контакта вам необходимо работать с маршрутом https://www.google.com/m8/feeds/contacts/{userEmail}/full (см. Contacts API documentation).

Соответствующий способ работы с API напрямую - отправить веб-запрос, используя что-то вроде модуля запросов Python.

CREATE_ROUTE = 'https://www.google.com/m8/feeds/contacts/default/full' 
FULL_PATH = CREATE_ROUTE + '?access_token=' + ACCESS_TOKEN 

import requests 
r = requests.get(FULL_PATH) 
print(r.text) 

Где access_token это маркер доступа вы вернулись из Google, когда вы уполномочил ваш доступ (это все еще может быть сделано с помощью Google-API-питон-клиент)

Смежные вопросы