403 Forbidden error google plus python

时间:2013-12-09 03:24:01

标签: python oauth google-plus

有我的代码:

import pprint
import httplib2

from apiclient.discovery import build
from oauth2client.client import OAuth2WebServerFlow

SCOPES = ['https://www.googleapis.com/auth/plus.me',
          'https://www.googleapis.com/auth/plus.stream.write']

REDIRECT_URI = 'urn:ietf:wg:oauth:2.0:oob'

CLIENT_ID = "my client id"
CLIENT_SECRET = "my client secret"
flow = OAuth2WebServerFlow(client_id=CLIENT_ID,
                           client_secret=CLIENT_SECRET,
                           scope=SCOPES,
                           redirect_uri=REDIRECT_URI)

auth_uri = flow.step1_get_authorize_url()

print 'Please paste this URL in your browser to authenticate this program.'
print auth_uri
code = raw_input('Enter the code it gives you here: ')

credentials = flow.step2_exchange(code)

http = httplib2.Http()
http = credentials.authorize(http)
service = build('plusDomains', 'v1', http=http)

user_id = 'me'

print('Insert activity')
result = service.activities().insert(
    userId = user_id,
    body = {
        'object' : {
            'originalContent' : 'Happy Monday! #caseofthemondays'
        },
        'access' : {
            'items' : [{
                'type' : 'domain'
            }],
            'domainRestricted': True
        }
    }).execute()
print('result = %s' % pprint.pformat(result))

并且有我的错误:

Traceback (most recent call last):
      File "/home/karl/workspace/googleplus/google_plus/google_plus_pic.py", line 44, in <module>
        'domainRestricted': False
      File "/usr/local/lib/python2.7/dist-packages/oauth2client/util.py", line 128, in positional_wrapper
        return wrapped(*args, **kwargs)
      File "/usr/local/lib/python2.7/dist-packages/apiclient/http.py", line 680, in execute
        raise HttpError(resp, content, uri=self.uri)
    apiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/plusDomains/v1/people/me/activities?alt=json returned "Forbidden">

我已经阅读了很多信息,但我不知道如何解决这个问题。 错误在哪里?

1 个答案:

答案 0 :(得分:3)

要使用Google+域名API,您需要确保代表您所代表的用户的域已设置了适合您应用的权限。这些说明位于quick-start guide第1步的“委托您的服务帐户的全域权限”部分。

具体而言,您需要将应用的客户端ID与您的应用在域控制面板中使用的范围相关联。域管理员是唯一可以执行此操作的人 - 因此,如果您正在使用其他域,请确保您与该人联系。此外,控制面板中列出的范围必须与您在应用中请求的范围完全匹配。