본문 바로가기

Open API/T-Story

04.티스토리 블로그 API : 카테고리 ID 확인하기

반응형
 

티스토리 블로그 API : 글쓰기 개요

티스토리 블로그 API : 블로그 ACCESS Token 받기 티스토리 블로그 API : Authentication Code받기 티스토리 블로그 API 웹사이트 [ 티스토리 API 웹사이트 링크 ] 우선 티스토리 API 웹사이트에서 App 아이와 Secr

coding-in-house.tistory.com

카테고리 이름도 아니고 카테고리 ID가 필요합니다. 또 문서를 봅시다. 카테고리 ID를 서버에게서 받아와야 합니다. POST방식으로 통신하며 Access Token과 블로그 이름, 그리고 어떤 데이터 형식으로 받을 것인지 입력해야 합니다.

 

 

import requests

def category(self):
    categoryUrl = 'https://www.tistory.com/apis/category/list?' # 카테고리URL
    
    params = {'access_token' : blogToken,
              'output' : 'json',
              'blogName': blogName}
	# 서버가 요구하는 PARAMETER
    # BlogToken : Blog Access Token
    # BlogName : coding-in-house와 같이 www.xxxxxxx.tistory.com에서 xxx의 부분에 해당,
    
    req = requests.get(categoryUrl, params=params)
    # 서버에게 URL과 PARAMETER를 제공
    
    if req.status_code == 200:
    # 에러코드가 200번으로 정상이면,
    
        res = req.json()
        # 결과값을 JSON으로 변환
        
        categorylist = res['tistory']['item']['categories']
        # 딕셔너리처럼 tistory - item - categories 접근.
        
        for list in categorylist:
        # for 반복문으로 보기 편하게 PRINT
            print(list)

 

저는 카테고리 한개만 고정해놓고 사용할 것이기에 여기서 카테고리 ID만 확인하고 이제 이 코드는 쓸 일이 없습니다. '659100'이 세일기획전 Tracker의 카테고리 ID네요. 포스팅 소재가 카테고리에 따라 분류되어야 한다면, 자동으로 글쓰는 코드에 카테고리 선택하는 별도의 코드가 필요하겠습니다.

 

def categorylist(self):

    categoryUrl = 'https://www.tistory.com/apis/category/list?'
    params = {'access_token' : blogToken,
              'output' : 'json',
              'blogName': blogName}

    req = requests.get(categoryUrl, params=params)
    if req.status_code == 200:
        res = req.json()
        categorylist = res['tistory']['item']['categories']
        n = 0
        categorydict = {}
        for list in categorylist:
            n += 1
        	# 카테고리마다 넘버링을 붙입니다.            
            categorydict[n] = list
			
    for key, value in categorydict.items():
        print(key, value)
	# User가 숫자를 입력하기 전에 리스트를 보여주고
    
    categorynumb = input('카테고리를 입력하세요. :')
    # 해당되는 숫자를 입력하게 합니다.
    
    return categorydict[int(categorynumb)]['id']

 

반응형