1

Googleの連絡先リストにあるすべてのグループを取得する小さなPythonスクリプトを作成しましたが、何らかの理由で「連絡先」が表示されません。私は3.0APIを使用していますが、2.0APIでも同様の問題が発生していました。以下は、Google2.0の連絡先のドキュメントから抜粋したものです。

たとえば、マイコンタクトグループのIDを確認するには、特定のユーザーのすべてのグループのフィードを取得し、サブ要素を持つグループエントリを見つけて、そのグループエントリの要素の値を取得します。

現在、私が受け取る応答には、gContact:systemGroupタグがどこにもありません。特定のグループのグループIDを取得するにはどうすればよいですか?

私のスクリプトは以下のとおりです:-

user="blah@gmail.com"
pas="blah"
data={"Email":user, "Passwd":pas, "service": "cp", "source":"tester"}
import urllib
data = urllib.urlencode(data)

import urllib2
req = urllib2.Request('https://www.google.com/accounts/ClientLogin', data)
resp = urllib2.urlopen(req)
x = resp.read()

auth=a[-1].split('=')[-1]
req = urllib2.Request('https://www.google.com/m8/feeds/groups/blah@gmail.com/full/', headers={'Authorization':'GoogleLogin auth='+auth})
resp = urllib2.urlopen(req)
x = resp.read()
print x
print "My Contacts" in x
print "gContact:systemGroup" in x

どうすればこれをトラブルシューティングできるかについてのいくつかの手がかりは素晴らしいでしょう、ありがとう。

4

1 に答える 1

2

Pythonクライアントライブラリを直接使用してみませんか?それはあなたが望むことを正確に行う一連のメソッドを含みます。

import gdata.contacts.client
import gdata.contacts.data # you might also need atom.data, gdata.data

gd_client = gdata.contacts.data.ContactsClient(source='eQuiNoX_Contacts')
gd_client.ClientLogin('equinox@gmail.com', '**password**')

feed = gd_client.GetGroups()
    for entry in feed.entry:
        print 'Atom Id: %s' % group.id.text
        print 'Group Name: %s' % group.title.text
        if not entry.system_group:
            print 'Edit Link: %s' % entry.GetEditLink().href
            print 'ETag: %s' % entry.etag
        else:
            print 'System Group Id: %s' % entry.system_group.id

これで問題は解決しますか?ある意味、よりクリーンです。それでも問題が解決しない場合:

...何らかの理由で「私の連絡先」が表示されません...

次に、ドキュメントから:

注:返される結果の数にはデフォルトの制限があるため、フィードにユーザーの連絡先グループのすべてが含まれているとは限りません。詳細については、クエリパラメータを使用した連絡先グループの取得のmax-resultsクエリパラメータを参照してください。

注:新しいドキュメントには、サンプルのPythonコードとプロトコルの説明が並んで含まれています。Pythonコードは、一般的なプロトコルに頭を悩ませるのに役立ちます。

于 2011-09-26T19:34:59.720 に答える