用于联系人的Python上的Google API的OAuth2

时间:2015-05-27 15:53:42

标签: python google-api-python-client

好的,我按照这里的答案: Is it possible to use "Domain-wide Delegation of Authority" with gdata-python-client?

然而,当我进行测试时,我得到了这个:

  

oauth2client.client.AccessTokenRefreshError:access_denied

这是我的代码:

class OAuthToken():
def __init__(self, creds):
    self.creds = creds
def modify_request(self, req):
    if self.creds.access_token_expired or not self.creds.access_token:
        self.creds.refresh(httplib2.Http())
    self.creds.apply(req.headers)

def ListContacts(username):

file    =   open('privatekey.pem','rb')
text    =   file.read()
file.close()
credentials =   SignedJwtAssertionCredentials('somelongnumber@developer.gserviceaccount.com',\
                text,\
                scope=['http://www.google.com/m8/feeds/'],\
                prn=username+'@mycompany.com')

gdclient    =   gdata.contacts.client.ContactsClient(source='mycompany.com')
gdclient.auth_token =   OAuthToken(credentials)
feed    =   gdclient.GetContacts()

我的所有其他OAuth2内容都有效,它只是让我感到悲伤的联系人,所以我认为我有API&凭证设置正确。

https://www.google.com/m8/feeds/添加到我的"一个或多个API范围"在API安全性方面,但似乎没有帮助。

我可能会遗失什么?

1 个答案:

答案 0 :(得分:0)

令人惊讶的是一封小信会做什么。

即使身份验证路径为http://www.google.com/m8/feeds/,凭据的实际路径也必须为https://www.google.com/m8/feeds/

业余错误。对不起,伙计们。