我正致力于在google appengine中创建一个简单的应用,以自动在我的blogspot上发布内容。
我创建了服务帐户,并尝试使用以下代码调用blogger api发布博客。这个没有运行权限不足的错误消息。
urlfetch.set_default_fetch_deadline(45)
service = build('blogger', 'v3')
class MainHandler(webapp2.RequestHandler):
def post(self):
body = {
"kind": "blogger#post",
"id": "9999999999999999",
"title": "SAmple title",
"content": "SAmple blog contents"
}
scopes = ['https://www.googleapis.com/auth/blogger']
credentials = ServiceAccountCredentials.from_json_keyfile_name('secret-key.json', scopes=scopes)
http_auth = credentials.authorize(Http())
request = service.posts().insert(blogId="9999999999999999",body=body)
response = request.execute(http=http_auth)
self.response.out.write(pprint.pformat(response))
app = webapp2.WSGIApplication([
('/postcontents', MainHandler)
], debug=True)
但是,我可以通过以下行访问博客详情
self.response.write(blogs.get(blogId='9999999999999999').execute(http=http_auth))
好像我的服务帐户与我的博客帐户无关(尽管我的谷歌应用引擎和博客都使用相同的Gmail帐户)。我怎么做到这一点?
答案 0 :(得分:0)
Blogger不支持服务帐户。您将需要使用Oauth2。验证您的代码一旦存储刷新令牌包含您的代码,然后使用刷新令牌根据需要获取新的访问令牌。