App Engine (Python) и API обеспечения - PullRequest
0 голосов
/ 10 декабря 2010

Я пытаюсь вытащить список AllUsers из домена Служб Google.До сих пор я пришел к этому http://code.google.com/googleapps/domain/gdata_provisioning_api_v2.0_reference_python.html API обеспечения, который делает то, что мне нужно, но возвращает объект UserFeed?Какое-то поле Atom?

Я не уверен, куда идти дальше.

Любой совет по этому поводу?

ОБНОВЛЕНИЕ: Итак, вот что я придумала:


import gdata.apps.service
import gdata.alt.appengine
.....

service = gdata.apps.service.AppsService(email="someone@your_apps_domain.com", domain="your_apps_domain.com", password="mydoghasfleas")
        service.ProgrammaticLogin()
        gdata.alt.appengine.run_on_appengine(service) # i dont even think you need this

        users = service.RetrievePageOfUsers()

        for u in users.entry:

            self.response.out.write(u.login.user_name)

Кроме того, это удобно для просмотра этих объектов, с помощью которых API-интерфейс предоставления услуг столкнулся с проблемой.Я думал, так как ответ атома был похож на это:

- xml-- ns1: login xmlns: ns1 = "http://schemas.google.com/apps/2006" admin =" false "согласованоToTerms =" true "changePasswordAtNextLogin =" false "ipWhitelisted ="ложь" приостановлено = "ложь" userName = "yosef" --xml -

Я полагал, что users.entry.userName <---- обратите внимание на случай верблюда, он соответствуетXML-ответ, но вместо этого было имя_пользователя </p>

В любом случае я использовал это, чтобы проанализировать, что ProvisioningAPI создал

def dump(obj): #pass the object into and it will show you all sorts of wonders 
  for attr in dir(obj):
    print "obj.%s = %s" % (attr, getattr(obj, attr))

1 Ответ

2 голосов
/ 10 декабря 2010

Попробуйте это:

import gdata.apps
import gdata.apps.service
import gdata.alt.appengine

service = gs.AppsService(email="[[ account email with admin privs ]]",domain="[[ google apps domain ]]",password="[[ account password ]]")

gdata.alt.appengine.run_on_appengine(service)

service.ProgrammaticLogin()
users = service.RetrieveAllUsers()

for item in users.entry:
    print '----Username '+item.login.user_name' for user '+item.name.given_name+' '+item.name.family_name

Это должно напечатать:

----Username john.doe for user John Doe
----Username jane.doe for user Jane Doe
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...