创建一个谷歌联系人python3

问题描述:

我想创建一个联系人的谷歌api和python3创建一个谷歌联系人python3

但gdata似乎不能与python3兼容。 Like: AttributeError:'function'对象没有属性'func_name'

有没有人有任何样品,如何在python3中创建与谷歌API联系?

感谢

首先,有你陪pip安装GDATA Python客户端,或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,

你可以使用PIP 3,像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

但如何authentificate授权您的访问?是的,我用pip3安装了gdata,但python2仍然存在错误 – user462794

对于只读到联系人访问,谷歌已经构建了新的People API,它可以在google-api-python-client中与Python3一起使用。但是,对于写入访问,您需要使用较早的GData格式。

简短的回答你的问题是,你将无法得到的GData与Python3工作,因为GDATA,蟒蛇,客户端不再保持,从来没有内置Python3支持(见https://github.com/google/gdata-python-client/issues/29

然而,并非所有的希望都失去了!您仍然可以直接查询Google的REST API。具体而言,要创建联系人,您需要使用https://www.google.com/m8/feeds/contacts/{userEmail}/full路由(请参阅Contacts API documentation以获取更多信息)

直接使用API​​的适当方式是使用类似Python的Requests模块的方式提交Web请求。

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是访问令牌你从谷歌回来,当你(使用谷歌的API的Python客户端这仍然可以做到)