2013-06-13 2 views
1

В настоящее время я использую сценарий shared_contacts_profiles.py для загрузки контактов из внешней системы в наши контакты Google общего домена. Я хотел бы сделать процесс более автоматизированным, поэтому я попытался создать общий контакт (с полным именем и адресом электронной почты), используя базовый скрипт python. Контакт создается, но он добавляется к контактам администратора, а не к каталогу.Создание общего контакта Google с использованием API-контакта создается, но не в общем каталоге

Мой код

#!/usr/bin/python 
import atom 
import gdata.data 
import gdata.contacts.client 
import gdata.contacts.data 

def main(): 

    admin_email = '[email protected]' 
    admin_password = 'P4ssw0rd' 
    domain_index = admin_email.find('@') 
    domain = admin_email[domain_index+1:] 

    contacts_client = gdata.contacts.client.ContactsClient(domain=domain) 
    contacts_client.client_login(email=admin_email, 
           password=admin_password, 
           source='shared_contacts_profiles', 
           account_type='HOSTED') 

    new_contact = gdata.contacts.data.ContactEntry() 
    new_contact.name = gdata.data.Name(
    full_name=gdata.data.FullName(text='John Doe')) 
    new_contact.email.append(gdata.data.Email(address='[email protected]', 
    primary='true',rel=gdata.data.WORK_REL)) 
    contact_entry = contacts_client.CreateContact(new_contact) 

    print "Contact's ID: %s" % contact_entry.id.text 

if __name__ == '__main__': 
    main() 

Я должен что-то отсутствует довольно простое, но просто не могу видеть, что это такое.

EDIT * Я думаю, что shared_contacts_profiles.py устанавливает список контактов домена, когда он отправляет партии в Google. Я не собирался использовать партии, так как есть только несколько контактов для добавления. Я также подозреваю, что я должен использовать gdata.contacts.service.ContactsService и не gdata.contacts.client.ContactsClient

Благодаря

Дэйва

ответ

1

В конце концов я использовал исходный код, как показано выше, с некоторыми дополнения. Мне нужно было получить канал uri для списка контактов общего домена, а затем предоставить этот uri в CreateContact.

feed_url = contacts_client.GetFeedUri(contact_list=domain, projection='full') 

contact_entry = contacts_client.CreateContact(new_contact,insert_uri=feed_url) 

Благодаря

Dave