이 글은 티스토리 색인 자동화 프로그램 개발 과정중에 작성된 글 입니다 : )
만드는 과정 궁금하신 분들은 아래 링크를 들어와주세요 !
2025.01.15 - [파이썬 코딩 기록] - 티스토리 색인 자동화 프로그램 4일간의 개발 과정
라이브러리 설치
먼저 필요한 라이브러리 설치하시구요
pip install google-auth google-auth-oauthlib google-auth-httplib2 requests
Indexing API 활성화 & mykey.json 파일 다운로드 받아주셔야 코드 작동합니다
아래는 키 발급 받는 방법 안내글입니다.
2025.01.15 - [파이썬 코딩 기록] - 구글 Indexing API 발급 방법 과정 안내글 (쉽게 따라하기 가능)
키 발급 및 서치콘솔에 사용자 계정(email)추가 완료하신분은 아래 코드 바로 갖다 쓰시면 될것같습니다.
Python Requests + mykey.json 으로 Indexing API 요청 보내기
먼저 코드입니다.
아래 코드.py 와 같은 경로에 mykey.json 넣어두시고 url 변경해주시면 작동합니다 : )
import json
import requests
from google.oauth2 import service_account
from google.auth.transport.requests import Request
def get_access_token(service_account_file):
credentials = service_account.Credentials.from_service_account_file(
service_account_file,
scopes=["https://www.googleapis.com/auth/indexing"]
)
credentials.refresh(Request())
return credentials.token
def index_url(service_account_file, url, action):
access_token = get_access_token(service_account_file)
endpoint = "https://indexing.googleapis.com/v3/urlNotifications:publish"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {access_token}"
}
payload = {
"url": url,
"type": action
}
response = requests.post(endpoint, headers=headers, json=payload)
if response.status_code == 200:
print("Indexing request successful.")
else:
print(f"Failed to send indexing request: {response.status_code}")
return response.json()
if __name__ == "__main__":
service_account_file = "./mykey.json"
action = "URL_UPDATED"
url = "https://pythoncodinguniversity.tistory.com/entry/%ED%8B%B0%EC%8A%A4%ED%86%A0%EB%A6%AC-%EB%B0%B1%EC%97%85-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EA%B0%9C%EB%B0%9C%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4-URL-%EB%94%B8%EA%B9%8D-%EB%81%9D-%E3%85%85%E3%84%B1%E3%85%87"
response = index_url(service_account_file, url, action)
print(json.dumps(response, indent=2))
코드 설명 (한글)
1. 필수 라이브러리 임포트
import json
import requests
from google.oauth2 import service_account
from google.auth.transport.requests import Request
- json: JSON 형식 데이터를 다루기 위해 사용합니다.
- requests: HTTP 요청을 보내기 위해 사용합니다.
- google.oauth2.service_account: 서비스 계정 키를 통해 Google API 인증을 처리합니다.
- google.auth.transport.requests: 토큰 갱신을 위한 요청을 처리합니다.
2. 액세스 토큰 가져오기
def get_access_token(service_account_file):
credentials = service_account.Credentials.from_service_account_file(
service_account_file,
scopes=["https://www.googleapis.com/auth/indexing"]
)
credentials.refresh(Request())
return credentials.token
- service_account_file: 서비스 계정 JSON 파일 경로를 받습니다.
- scopes: 특정 API에 접근할 권한을 설정합니다. 여기서는 Indexing API 권한을 요청합니다.
- credentials.refresh(Request()): 액세스 토큰을 갱신합니다.
- return credentials.token: 생성된 토큰을 반환합니다.
3. URL 인덱싱 요청 보내기
def index_url(service_account_file, url, action):
access_token = get_access_token(service_account_file)
endpoint = "https://indexing.googleapis.com/v3/urlNotifications:publish"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {access_token}"
}
payload = {
"url": url,
"type": action
}
response = requests.post(endpoint, headers=headers, json=payload)
if response.status_code == 200:
print("Indexing request successful.")
else:
print(f"Failed to send indexing request: {response.status_code}")
return response.json()
- access_token:
get_access_token
함수에서 생성된 액세스 토큰을 사용합니다. - endpoint: Google Indexing API의 URL입니다.
- headers:
Content-Type
: 요청이 JSON 형식임을 명시합니다.Authorization
: 인증 토큰을 포함합니다.
- payload:
url
: 인덱싱할 대상 URL.type
: 동작 유형 (URL_UPDATED
또는URL_DELETED
).
- requests.post: API 요청을 POST 메서드로 보냅니다.
- response.status_code: 응답 상태 코드를 확인하여 성공 여부를 출력합니다.
4. 메인 실행부
if __name__ == "__main__":
service_account_file = "./mykey.json"
action = "URL_UPDATED"
url = "https://yourwebsite.com/page"
response = index_url(service_account_file, url, action)
print(json.dumps(response, indent=2))
- service_account_file: 서비스 계정 JSON 파일 경로를 지정합니다.
- action: 수행할 작업 유형을 설정합니다.
- url: 인덱싱할 URL을 입력합니다.
- index_url: 위에서 정의한 함수 호출.
- print(json.dumps(response, indent=2)): API 응답을 보기 쉽게 출력합니다.
이 코드로 Google Indexing API를 사용하여 웹페이지를 빠르게 인덱싱할 수 있습니다!
'애드센스 자동화 프로그램 개발 기록 > 티스토리 색인 자동화 프로그램 개발 기록' 카테고리의 다른 글
티스토리 색인 자동화 프로그램 4일간의 개발 과정 (0) | 2025.01.15 |
---|---|
구글 Indexing API 발급 방법 과정 안내글 (쉽게 따라하기 가능) (0) | 2025.01.15 |
티스토리 블로그 네이버, 구글 색인 생성 프로그램 만드는중 (0) | 2025.01.15 |