使用python3创建一个谷歌联系人

时间:2016-10-29 14:39:32

标签: python-3.x google-api

我想与google api和python3

建立联系

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

有没有人有任何关于如何在python3中与google api建立联系的示例?

感谢

2 个答案:

答案 0 :(得分:1)

首先,您是否使用pippip3安装了gdata python客户端?据Google's repository所说,

  

现在也支持Python 3.3+!但是,这个库还没有被>使用Python 3彻底使用,所以我们建议之前测试   在生产中使用Python 3进行部署,

您可以使用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='handle@gmail.com',\
        primary='true', rel=gdata.data.WORK_REL, display_name='E. Bennet'))
    new_contact.email.append(gdata.data.Email(address='liz@example.com',\
        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 :(得分:0)

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

您的问题的简短回答是,您无法使GData与Python3一起使用,因为gdata-python-client不再维护,并且从未内置过Python3支持(请参阅{{3} })

然而,并非所有希望都失去了!您仍然可以直接查询Google的REST API。具体而言,要创建联系人,您需要使用https://www.google.com/m8/feeds/contacts/{userEmail}/full路线(有关详细信息,请参阅https://github.com/google/gdata-python-client/issues/29

直接使用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是您授权访问时从Google返回的访问令牌(这仍然可以使用google-api-python-client完成)

相关问题