구글 블로거 인증시 "Token has been expired or revoked" 의 오류가 생길 경우, 이는 하기와 같이 게시상태가 테스트인 경우에 문제가 발생할 수 있음. 따라서 설치된 https://console.cloud.google.com/ 사이트에 들어가서 해당 "게시상태" 가 만일 테스트로 되어 있을 경우 이를 "앱 게시"로 변경한다.
구글 블로거 Token has been expired or revoked 오류 해결
아래와 같은 창이 뜰시 확인을 누르자.
확인 준비를 클릭한다.
앱 도메인에 애플리케이션 홈페이지와 개인정보처리방침 링크도 다음과 같이 적는다.
그리고 저장 후 계속 클릭.
그리고 이후에 범위가 어떤 방식으로 사용하는지는 아래와 같이 적는다.
다음과 같은 데모 동영상도 적으라고 하는데, 일단 내 계정의 유투브 채널 URL을 적어놨다. 이후 저장 후 계속
마지막으로 범위 근거가 나오는데, 여기에 아래를 체크하고 제출하여 확인 받기를 클릭하자.
다음과 같이 제출을 했으나, 확인 결과로는 앱이 테스트 모드인 경우 사용자 토큰은 7일 후에 만료된다고 함. 결국엔 새로 갱신할 지를 생각해봐야할 문제라고 생각함.
간단하게 하는 방법이 없을까 하다가...
기존의 OAuth 2.0 클라이언트 새로운 키를 만들어서 진행했다. 해결방법은 아래와 같다. 다음과 같이 웹 애플리케이션으로 생성한다.
이외 코딩으로 인증을 시도하면 하기와 같이 승인 오류가 뜬다. 다만 아래에 뜬 로컬호스트 이후의 번호를 주목하면 된다. 해당 번호를 복사해놓고, 이외 미리 만들어준 OAuth 2.0 클라이언트 웹 애플리케이션 만들어진 곳에 들어가서 localhost 주소만 변경해 주소 다시 파이썬으로 인증 클릭을 하면은 로그인 창이 나온다.
마지막으로 해당 구글 로그인만 완료하면은 최종 구글 블로거 인증의 오류 해결은 완료된다.
요약해서 말하자면, 만일 구글 블로거 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()
'Python' 카테고리의 다른 글
[파이썬] 네이버 클로바 Summary API 문장 3줄 요약 해보기 (0) | 2022.07.10 |
---|---|
[파이썬] cv2 mp4 jpg 변환, gif 변환 해보기 (0) | 2022.07.09 |
[파이썬] 네이버 블로그 구글 검색 결과 노출 (0) | 2022.07.07 |
[파이썬] ffmpeg 설치 및 다운로드, cv2 이미지 동영상 변환 (0) | 2022.07.05 |
[파이썬] 네이버 검색 트렌드 API 그래프 시각화까지 해보기 (0) | 2022.07.05 |
댓글