【问题标题】:Get all contacts from Google Contacts API version 3.0从 Google Contacts API 3.0 版获取所有联系人
【发布时间】:2014-08-15 17:13:59
【问题描述】:

我正在尝试从我的 Gmail 帐户中检索所有联系人。目前它似乎只随机获得大约 25 个(我的联系人组中有大约 200 个联系人)。我注意到的是,这些检索到的联系人都是我很久以前建立的旧联系人。较新的联系人似乎没有显示。

OAuth2Token

token = gdata.gauth.OAuth2Token(client_id=CLIENT_ID, client_secret=CLIENT_SECRET, scope=SCOPE, user_agent=USER_AGENT)
redirect_url = token.generate_authorize_url(redirect_uri=REDIRECT_URI)

身份验证重定向

self.redirect(redirect_url)

身份验证、获取联系人和显示

url = atom.http_core.Uri.parse_uri(self.request.uri)
if 'error' in url.query:
  pass
else:
  token.get_access_token(url.query)

  gd_client = gdata.contacts.client.ContactsClient()
  token.authorize(gd_client)
  feed = gd_client.GetContacts()

for i, entry in enumerate(feed.entry):
  self.response.write(entry.name.full_name)

Developer Contacts Page 中,“运行示例代码”说要使用:

gd_client = gdata.contacts.data.ContactsClient(source='YOUR_APPLICATION_NAME')

但它总是弹出找不到 ContactsClient 的错误。我最终在gdata.contacts.client找到了它。


其他问题 - 我已为 USER_AGENT 分配了 '',我应该放在那里?

【问题讨论】:

    标签: python google-app-engine oauth-2.0 google-contacts-api


    【解决方案1】:

    如果未提供查询参数,联系人供稿将返回前 25 个联系人。添加 start-index 和 max-results 参数来调整它。

    https://developers.google.com/google-apps/contacts/v3/reference#Parameters

    结果中还应该返回页面信息,指示页面上有多少联系人,这是哪个页面以及还有多少页面。

    【讨论】:

    • 附加问题 - 我已经为 USER_AGENT 分配了 '',我应该放什么?
    • 用户代理是在 HTTP 标头中发送的任意字符串,以帮助服务器识别哪个程序正在发送请求。虽然空字符串在技术上是有效的,但您可能希望将其设置为您的应用程序名称以及您的版本号,例如“我的应用程序/1.0”
    • 参见:developers.google.com/google-apps/contacts/v3/… 点击 Python 选项卡查看如何添加查询参数。下面列出了所有参数的列表。
    猜你喜欢
    • 1970-01-01
    • 2016-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-24
    相关资源
    最近更新 更多