验证用户在Python中检索Google联系人

时间:2016-10-19 05:52:44

标签: python google-contacts google-oauth2

我想要获取Google联系人,为此我正在关注此文档。这里验证用户我使用的是OAuth 2.0。但我无法验证我的用户身份。

    client_id = 'abcedf'
    client_secret= 'qwert'
    scope=(
            'https://www.googleapis.com/auth/contacts.readonly'
        ),


credentials = {
  'client_id':client_id,
  'client_secret':client_secret,
  'scope':scope
}

auth2token = gdata.gauth.OAuth2TokenFromCredentials(credentials)

但上述身份验证无效,因此我无法继续检索联系人。

enter image description here

1 个答案:

答案 0 :(得分:0)

由于您使用Python对用户进行身份验证,因此您可以尝试使用oauth2client-library for Python来了解如何在身份验证中使用Flow对象:

flow_from_clientsecrets()

oauth2client.client.flow_from_clientsecrets()方法从client_secrets.json文件创建Flow对象。此JSON格式的文件存储您的客户端ID,客户端密钥和其他OAuth 2.0参数。

以下显示了如何使用flow_from_clientsecrets()创建Flow对象:

使用flow_from_clientsecrets()

from oauth2client.client import flow_from_clientsecrets
...
flow = flow_from_clientsecrets('path_to_directory/client_secrets.json',
                               scope='https://www.googleapis.com/auth/calendar',
                               redirect_uri='http://example.com/auth_return')

使用OAuth2WebServerFlow

尽管名称如此,oauth2client.client.OAuth2WebServerFlow类仍用于已安装和Web应用程序。它是通过将客户端ID,客户端密钥和作用域传递给其构造函数来创建的:您为构造函数提供redirect_uri参数。这必须是您的应用程序处理的URI。

from oauth2client.client import OAuth2WebServerFlow
...
flow = OAuth2WebServerFlow(client_id='your_client_id',
                           client_secret='your_client_secret',
                           scope='https://www.googleapis.com/auth/calendar',
                           redirect_uri='http://example.com/auth_return')