본문 바로가기
Python

[파이썬] 구글 블로거 Token has been expired or revoked 오류 해결

by 퍼포먼스마케팅코더 2022. 7. 8.
반응형

구글 블로거 인증시 "Token has been expired or revoked" 의 오류가 생길 경우, 이는 하기와 같이 게시상태가 테스트인 경우에 문제가 발생할 수 있음. 따라서 설치된 https://console.cloud.google.com/ 사이트에 들어가서 해당 "게시상태" 가 만일 테스트로 되어 있을 경우 이를 "앱 게시"로 변경한다. 

 

구글 블로거 Token has been expired or revoked 오류 해결

 

 

구글 블로거 Token has been expired or revoked 오류 해결

아래와 같은 창이 뜰시 확인을 누르자.

구글 블로거 Token has been expired or revoked 오류 해결

 

 

확인 준비를 클릭한다.

구글 블로거 Token has been expired or revoked 오류 해결

 

앱 도메인에 애플리케이션 홈페이지와 개인정보처리방침 링크도 다음과 같이 적는다.

그리고 저장 후 계속 클릭.

 

구글 블로거 Token has been expired or revoked 오류 해결

 

 

그리고 이후에 범위가 어떤 방식으로 사용하는지는 아래와 같이 적는다.

 

구글 블로거 Token has been expired or revoked 오류 해결

 

다음과 같은 데모 동영상도 적으라고 하는데, 일단 내 계정의 유투브 채널 URL을 적어놨다.  이후 저장 후 계속

 

구글 블로거 Token has been expired or revoked 오류 해결

 

 

마지막으로 범위 근거가 나오는데, 여기에 아래를 체크하고 제출하여 확인 받기를 클릭하자.

 

구글 블로거 Token has been expired or revoked 오류 해결

 

다음과 같이 제출을 했으나, 확인 결과로는 앱이 테스트 모드인 경우 사용자 토큰은 7일 후에 만료된다고 함. 결국엔 새로 갱신할 지를 생각해봐야할 문제라고 생각함.

 

 

간단하게 하는 방법이 없을까 하다가...

존의 OAuth 2.0 클라이언트 새로운 키를 만들어서 진행했다. 해결방법은 아래와 같다. 다음과 같이 웹 애플리케이션으로 생성한다. 

 

구글 블로거 Token has been expired or revoked 오류 해결

 

 

이외 코딩으로 인증을 시도하면 하기와 같이 승인 오류가 뜬다. 다만 아래에 뜬 로컬호스트 이후의 번호를 주목하면 된다. 해당 번호를 복사해놓고, 이외 미리 만들어준 OAuth 2.0 클라이언트 웹 애플리케이션 만들어진 곳에 들어가서 localhost 주소만 변경해 주소 다시 파이썬으로 인증 클릭을 하면은 로그인 창이 나온다.

구글 블로거 Token has been expired or revoked 오류 해결

마지막으로 해당 구글 로그인만 완료하면은 최종 구글 블로거 인증의 오류 해결은 완료된다. 

 

 

요약해서 말하자면, 만일 구글 블로거 Token has been expired or revoked 오류가 뜰 경우엔 아래와 같이 처리하면 된다. (테스트앱 경우)

 

1. OAuth 2.0 클라이언트 ID 에 들어가서 새로 사용자 인증 정보를 만든다. 

2. 사용자 인증을 만들시 유형은 웹 애플리케이션으로 하며, localhost:8888 로 적힌 URL로 리다이렉트 주소로 입력한다.

3. 이후 해당 Json 파일을 디렉토리에 넣고, 저장한다. 

4. 이후 구글 파이썬으로 인증 시도시 redirect_uri_mismatch 오류가 뜨고 이후 아래에 뜨는 해당 로컬 호스트 주소를 기억하고 다시 OAuth 2.0 클라이언트 ID에 들어가서 redirect_uri 주소만 바꾼다.

  • redirect_uri: http://localhost:4702/

5. 다시 파이썬 내 구글 인증 URL 주소를 클릭하면 정상적으로 구글 로그인 창이 뜬다. 로그인 하고 블로거 뭐뭐 허용하겠냐고 뜨면 허용하겠다고 인증하면은 최종 완료된다.

 

 

 

파이썬 구글 블로거 API 인증시 파이썬 코딩 부문이다. 이미지를 업로드시엔 구글 드라이브도 필요하지만, 단순 텍스트와 URL만 입력할 경우엔 아래와 같은 코딩만 돌리면 된다. 

# 구글 블로거 API 인증 (2번 해야됨)

import sys
import os
import pickle
from oauth2client import client
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request

BLOG_ID = "" #블로거ID
#SCOPES = ['https://www.googleapis.com/auth/blogger', 'https://www.googleapis.com/auth/drive.file']

SCOPES = ['https://www.googleapis.com/auth/blogger']

def get_blogger_service_obj():
    creds = None
    if os.path.exists('auto_token.pickle'):
        with open('auto_token.pickle', 'rb') as token:
            creds = pickle.load(token)
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'C:/Users/tera/Desktop/blogger/client_secret_3.json', SCOPES)
            creds = flow.run_local_server(port=0)
        # Save the credentials for the next run
        with open('auto_token.pickle', 'wb') as token:
            pickle.dump(creds, token)
    blog_service = build('blogger', 'v3', credentials=creds)
    drive_service = build('drive', 'v3', credentials=creds)

    return drive_service,blog_service

drive_handler, blog_handler = get_blogger_service_obj()
 

 

반응형

댓글