본문 바로가기
Python

[python] 구글 블로그스팟 블로거 API 키 발급시 문제 해결 방법

by 퍼포먼스마케팅코더 2022. 12. 25.
반응형

구글 블로그스팟 블로거 키 발급시 문제 해결 방법

 

 

구글 블로그스팟 블로거 키 발급시 문제 해결 방법

구글 블로그스팟인 경우, 경우에 따라 하기의 API 키 발급시 문제가 되는 경우가 있다. 이는 하기의 방식에 따라 따라하면 해결될 수 있다.

구글 블로그스팟 블로거 API 키 발급시 문제 해결 방법

 

 

특히나 하기와 같이 확인 상태가 민감한 API 범위가 없어야된다. 민감한 API 범위인 경우는 bigquery 등과 같은 API 를 허용으로 해 놓을 경우, 테스트 사용자로만 해야된다. 하지만 이것도 7일 정도만 가능하며, 이후엔 확인 인증이 필요하다. 이에 민감한 범위를 제외한 blogger API 등과 management API 등만 발급 받으면 blogger API 키 발급이 완료된다.

구글 블로그스팟 블로거 API 키 발급시 문제 해결 방법

 

 

그리고 아래와 같이 blogger post 형식으로 Oauth 2.0 클라이언트 발급을 받는데, 이는 유형을 데스크톱 형식으로 발급받는다. 그리고 해당 발급된 키를 json 형식으로 다운받는다. 이를 다시 client_secret.json 파일명으로 변환하여 특정 폴더에 넣어두면 된다.  

구글 블로그스팟 블로거 API 키 발급시 문제 해결 방법

 

그리고 마지막으로 아래와 같이 코딩을 돌리면 된다. 그럼 최종 완료. 최초 인증시 구글 로그인만 처리하면 완료된다. 그럼 최종 완료되는 것이다. 

# 구글 블로거 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
import time

#hongdaearea.blogspot.com 

BLOG_ID = "7075230047704501014"   # 구글 블로거
#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/user/Desktop/ableclass/client_secret.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()

 

반응형

댓글