发布新的Google域名活动时出错

时间:2017-03-15 10:31:57

标签: python google-api google-api-python-client service-accounts google-domain-api

我使用过本指南:Quick start for Python

我还创建了一个G-Suite帐户来访问Google Apps域控制面板。

这是我插入帖子的代码:

__author__ = 'joannasmith@google.com (Joanna Smith)'

import httplib2
import pprint

from apiclient.discovery import build

from oauth2client.service_account import ServiceAccountCredentials



SERVICE_ACCOUNT_EMAIL = 'servizio@projecttest-161515.iam.gserviceaccount.com'



SERVICE_ACCOUNT_PKCS12_FILE_PATH = './ProjectTest-9179fae1c392.json'


USER_EMAIL = 'its2016web@assicuraora.com'


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


def authenticate():

  print 'Authenticate the domain for %s' % USER_EMAIL


  credentials = ServiceAccountCredentials.from_json_keyfile_name(
    SERVICE_ACCOUNT_PKCS12_FILE_PATH, scopes=SCOPES)

  delegate_credentials = credentials.create_delegated(USER_EMAIL)

  http = httplib2.Http()
  http = delegate_credentials.authorize(http)      
  return build('plusDomains', 'v1', http=http)
def activitiesInsert(service):

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


if __name__ == '__main__':
  service = authenticate()
  activitiesInsert(service)

要检索ClientID,我必须在服务帐户密钥上选中“在整个域G Suite上启用授权”,并且还从Google Apps域控制面板向客户端ID添加了范围。

但是当我运行我的代码时,它输出了这个错误:

  

<请求时的HttpError 403   https://www.googleapis.com/plusDomains/v1/people/me/activities?alt=json   返回“禁止”>

为什么?

我需要以这种形式订阅吗? https://developers.google.com/+/web/api/rest/pages-signup

编辑:我完成了授权截图,对我来说似乎没问题。

enter image description here

enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

403 forbidden表示您没有权限执行您尝试执行的操作。在这种情况下,插入域活动页面。您需要做的第一件事是仔细检查服务帐户是否已添加到域帐户,并且它具有所需的权限。这可能会有助Perform Google Apps domain-wide delegation of authority

请记住,这是您正在使用的Google+域名API。这将发布到域帐户活动页面。这不会向Google+ social media website发布任何内容。

Google Plus pages API用于写入Google+社交媒体网站上的网页。它是私人测试版。