我想制作一些应用程序(谷歌应用引擎),它将从其他网站获取一些数据,并将它们发布在我在Google+中的一个"收藏"中。
现在我有这样的代码:主.py
# -*- coding: utf-8 -*-
import webapp2
import httplib2
from googleapiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
class UpdateChannelTask(webapp2.RequestHandler):
def get(self):
self.add_news()
def add_news(self):
credentials = ServiceAccountCredentials.from_json_keyfile_name(
'my_project.json',
(
'https://www.googleapis.com/auth/plus.me',
'https://www.googleapis.com/auth/plus.stream.write'
)
)
delegate_credentials = credentials.create_delegated('my_email@gmail.com')
http = httplib2.Http()
http = delegate_credentials.authorize(http)
service = build(
'plusDomains',
'v1', http=http)
service.activities().insert(
userId='me',
preview=True,
body={
'object': {
'originalContent': 'Test, my first post in Google+!'
},
'access': {
'items': [{
'type': 'domain'
}],
'domainRestricted': True
}
}).execute()
app = webapp2.WSGIApplication(
routes=[
(r'/update', UpdateChannelTask),
],
debug=True
)
但这不起作用,我得到错误
HttpError: <HttpError 403 when requesting https://www.googleapis.com/plusDomains/v1/people/me/activities?alt=json&preview=true returned "Forbidden">
我的应用程序如何获得发布到我的Google+收藏的权利?
//编辑我对这份文件的理解正确吗?我需要有付费帐户"谷歌工作"来解决我的问题?
我做的每件事都是按照链接来做的。在"将域范围的权限委派给您的服务帐户"部分中,我必须转到URLhttps://www.google.com/a/cpanel/my_app.appspot.com并设置一些东西。尝试去那里会给我一个屏幕,上面写着"你需要一个谷歌工作账户才能登录my_app.appspot.com。了解更多信息"。所以我需要"谷歌上班"?
是的,您需要有一个工作帐户。不幸的是,Google Plus Pages API没有向公众开放。您可以在此处发送注册请求。
这就是为什么您会得到HTTP 403 Forbidden错误,这意味着服务器收到了您的请求,但拒绝采取您要求的操作。
因此,如果没有Work帐户,你就无法自动发布到Google+。当你有一个时,你可以使用moments.insert(以编程方式插入),也可以使用可嵌入的共享按钮。
您必须添加范围`https://www.googleapis.com/auth/plus.stream.writehttps://www.googleapis.com/auth/plus.me感谢你在google+账户上写这篇文章。通过使用此范围授权google+,您可以获得在google+中发布的授权令牌。