2016-10-29 3 views
1

Ich möchte einen Kontakt mit dem Google api und python3Erstellen Sie ein Google Kontakt mit python3

aber gdata seemsnot zu schaffen, mit python3 kompatibel zu sein. Like: Attribute: ‚Funktion‘ Objekt hat kein Attribut ‚func_name‘

Hat jemand eine Probe, die auf Arbeiten wie mit Google api erstellen Kontakt in python3?

dank

Antwort

1

Zuerst müssen Sie die gdata Python-Client mit pip oder mit pip3 installiert? Nach Google's repository, die sagt,

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,

können Sie PIP3, wie pip3 install google-api-python-client, verwenden Sie es neu zu installieren. Sobald das geklärt ist, finden Sie in den unten modifizierte Beispielcode-Block, wie ein Kontakt nur durch ihren Namen, E-Mail und Telefonnummer mit Python erstellen 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

aber wie zu authentifizieren? und ja ich habe gdata mit pip3 installiert, aber es gibt immer noch fehler von python2 – user462794

0

Für Nur-Lese-Zugriff auf Kontakte, Google hat die neue People API erstellt, die mit Python3 im google-api-python-client funktioniert. Für den Schreibzugriff müssen Sie jedoch das ältere GData-Format verwenden.

Die kurze Antwort auf Ihre Frage ist, dass Sie nicht in der Lage sein werden, GData zu bekommen mit Python3 zu arbeiten, weil der gdata-Python-Client wird nicht mehr gepflegt und hatte nie Unterstützung Python3 eingebaut (siehe https://github.com/google/gdata-python-client/issues/29)

Aber nicht alle Hoffnung ist verloren! Sie können weiterhin direkt nach der REST-API von Google fragen. Genauer gesagt, um einen Kontakt zu erstellen, müssen Sie mit der https://www.google.com/m8/feeds/contacts/{userEmail}/full Route arbeiten (siehe Contacts API documentation für weitere Informationen)

Die geeignete Möglichkeit, mit der API direkt zu arbeiten, ist eine Web-Anfrage mit etwas wie Python Requests-Modul.

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) 

Wo access_token ist die Zugriffstoken Sie zurück von Google bekommen, wenn Sie Ihren Zugang autorisieren (dies noch getan werden kann, mit Google-api-Python-Client)

Verwandte Themen