2013-12-09 69 views
2

有我的代码:403 Forbidden错误谷歌加蟒蛇

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"> 

我已经阅读了大量的信息,但我不知道该怎么解决这个问题。 错误在哪里?

+0

只是为了确保您授权的Google帐户是Google Apps帐户吗? – abraham

回答

3

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

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

+0

非常感谢 –