1

Google 블로그 엔진에 간단한 앱을 만들어 내 blogspot에 콘텐츠를 자동으로 게시하려고합니다.Google 서비스 계정 위임

블로그를 게시하기 위해 서비스 계정을 만들고 아래의 코드를 사용하여 blogger api를 호출하려고합니다. 이 권한이 부족한 권한 오류 메시지로 실행되지 않습니다. 내 서비스 계정이 내 Blogger 계정과 관련이없는 것처럼 내가 아래 선으로 블로그 정보에 액세스 할 수 있습니다 그러나

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

것 같다 (모두 내 Google 앱 엔진과 블로거는 같은 Gmail 계정을 사용하여도). 나는 이것을 어떻게 성취합니까?

답변

0

Blogger는 서비스 계정을 지원하지 않습니다. Oauth2를 사용해야합니다. 코드를 인증 한 후 새로 고침 토큰을 저장 한 다음 새로 고침 토큰을 사용하여 필요에 따라 새 액세스 토큰을 얻습니다.

+0

입력 해 주셔서 감사합니다. 처음에는 OAuth 2.0 토큰을 사용하고 코드를 인증하고 새로 고침 토큰을 받았습니다. 블로거 API에 액세스 할 수있었습니다. 그러나 언젠가 내가 동일한 토큰으로 APi에 액세스하면, 새로운 토큰을 생성하기 위해 Google 계정에 로그인하도록 지시하고 있습니다. 새 토큰을 얻기 위해 동일한 토큰을 다시 사용하려면 어떻게해야합니까? 블로그 게시물에 대한 cron 작업을 예약 할 계획입니다. 모든 문서 나 샘플 코드가 도움이 될 것입니다. – user1260969

+0

파이썬 클라이언트 라이브러리는 새로운 액세스 토큰을 얻는 것을 처리해야합니다. Refreshtoken은 만료 될 수 있습니다. 다시 승인하면됩니다. 참고 :이 옵션은 oauth2에서 작동하는 코드가있는 유일한 옵션입니다. – DaImTo

관련 문제