Question

Here's the code:

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.

What am i doing wrong, or what am i not doing at all? I posted the same question on the Apps API forum, just to clarify things.

EDIT Here's what i'm importing:

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: The error i got after fixing the qry typo:

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'
Was it helpful?

Solution

You can try the V3 client

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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top