2010-11-14 1 views
0

Вот код:я не в состоянии получить доступ к некоторым GData Контакты свойства, такие как пол

def fetch_feed(self): 
     client = gdata.contacts.service.ContactsService() 
     client.ClientLogin(username, password) #Will change to AuthSub later. 
     query = gdata.contacts.service.ContactsQuery() 
     query.max_results = 3000 
     feed = client.GetContactsFeed(query.ToUri()) 
     memcache.set('feed',feed, 3600) 
     return feed 

feed = self.fetch_feed() 
self.PrintFeed(feed) 

def PrintFeed(self, feed): 
     for entry in feed.entry: 
      print entry.* #example... i can access properties such as entry.title, entry.id, entry.updated, but can't access a whole lot more. 

Что я делаю неправильно, или что я я не делать вообще? Я разместил тот же вопрос на форуме API приложений, просто чтобы прояснить ситуацию.

EDIT Вот что я хочу импортировать:

from google.appengine.api import memcache, users 
from google.appengine.ext import db, webapp 
from google.appengine.ext.webapp import util 
import atom 
import atom.url 
import datetime 
import gdata.alt.appengine 

import gdata.contacts 
import gdata.contacts.client 
import gdata.contacts.data 
import gdata.contacts.service 
import gdata.client 
import gdata.service 
import settings 

EDIT2: ошибка я получил после фиксации QRY опечатка:

Traceback (most recent call last): 
    File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 511, in __call__ 
    handler.get(*groups) 
    File "C:\etrebug\main.py", line 55, in get 
    feed = self.fetch_feed() 
    File "C:\etrebug\main.py", line 67, in fetch_feed 
    feed = client.get_contacts(qry) 
    File "C:\etrebug\gdata\contacts\client.py", line 194, in get_contacts 
    desired_class=desired_class, **kwargs) 
    File "C:\etrebug\gdata\client.py", line 635, in get_feed 
    **kwargs) 
    File "C:\etrebug\gdata\client.py", line 276, in request 
    version=get_xml_version(self.api_version)) 
    File "C:\etrebug\atom\core.py", line 516, in parse 
    return _xml_element_from_tree(tree, target_class, version) 
    File "C:\etrebug\atom\core.py", line 525, in _xml_element_from_tree 
    if target_class._qname is None: 
AttributeError: 'ContactsQuery' object has no attribute '_qname' 

ответ

6

Вы можете попробовать клиент V3

client = gdata.contacts.client.ContactsClient() 
client.client_login(usr, passwd, "myscript") 
qry = gdata.contacts.client.ContactsQuery(max_results=3000) 
feed = client.get_contacts(query=qry) 

for entry in feed.entry: 
    # do something with entry 
+0

Я вижу. По этой ссылке, которую я отправляю, в ней говорится, что библиотека Python еще не обновлена ​​до версии 3 ... это немного огорчает меня, но, по крайней мере, там говорится, что некоторые поля не отображаются в предыдущих версиях, что notaddens меня. http://code.google.com/intl/pt-BR/apis/contacts/docs/3.0/migration_guide.html –

+2

Да, вся библиотека python gdata еще не была перенесена, но текущая версия gdata поддерживайте эту функциональность. Я добавил его несколько месяцев назад. –

+0

Это дает мне ошибку: объект «КонтактыQuery» не имеет атрибута «get_contacts» Я обновил вопрос с помощью импорта, который я использую. –