본문 바로가기
코드리뷰/chatGPT(Python)코드

ChatGPT 소스 코딩은 이렇게 해야 합니다. ( 티스토리 API 호출하기 )

by 디마드 2023. 2. 23.

티스토리 API로 블로그 글 작성하는 코드 만들어줘.

import requests
import json

# Tistory API key
API_KEY = 'YOUR_API_KEY'

# Blog name and post title
blog_name = 'YOUR_BLOG_NAME'
post_title = 'YOUR_POST_TITLE'

# Post content (in HTML format)
post_content = '<p>This is a test post.</p>'

# Categories and tags (comma-separated string)
categories = 'category1, category2'
tags = 'tag1, tag2'

# Tistory API endpoint for post creation
url = 'https://www.tistory.com/apis/post/write'

# Request payload
payload = {
    'access_token': API_KEY,
    'output': 'json',
    'blogName': blog_name,
    'title': post_title,
    'content': post_content,
    'category': categories,
    'tag': tags
}

# Send POST request to create post
response = requests.post(url, data=payload)

# Check response status code
if response.status_code == 200:
    # Parse JSON response
    json_data = json.loads(response.text)
    # Check if post was successfully created
    if json_data['tistory']['status'] == '200':
        print('Post created successfully.')
    else:
        print('Post creation failed.')
else:
    print('Request failed with status code:', response.status_code)

위 코드에서 YOUR_API_KEY와 YOUR_BLOG_NAME을 각각 본인의 API 키와 블로그 이름으로 바꿔주시면 됩니다. 그리고 YOUR_POST_TITLE과 post_content를 작성하고자 하는 글의 제목과 내용으로 수정하시면 됩니다.

코드 실행 후 "Post created successfully." 메시지가 출력되면 성공적으로 글이 작성된 것입니다. 만약 실패하면 "Post creation failed." 메시지가 출력됩니다. 요청이 실패한 경우에는 response.status_code를 통해 실패 원인을 파악할 수 있습니다.

이 코드는 Python requests 라이브러리를 사용하여 POST 요청을 보내고, JSON 형식으로 응답을 받아 처리합니다. 그리고 Tistory API에서 제공하는 post/write 엔드포인트를 사용하여 글을 작성합니다.

 

티스토리 API 글 작성을 마크다운 포맷으로 작성하는 코드를 추가해 줘.

네, 마크다운 포맷으로 글을 작성하는 코드를 추가해 드리겠습니다. 이 코드는 Python 언어로 작성되었습니다.

import requests
import json

# Tistory API key
API_KEY = 'YOUR_API_KEY'

# Blog name and post title
blog_name = 'YOUR_BLOG_NAME'
post_title = 'YOUR_POST_TITLE'

# Post content (in Markdown format)
post_content = '''
# This is a test post

This is a paragraph in **bold**.

- This is a list item.
- This is another list item.

This is a [link](https://www.example.com).
'''

# Categories and tags (comma-separated string)
categories = 'category1, category2'
tags = 'tag1, tag2'

# Tistory API endpoint for post creation
url = 'https://www.tistory.com/apis/post/write'

# Request payload
payload = {
    'access_token': API_KEY,
    'output': 'json',
    'blogName': blog_name,
    'title': post_title,
    'content': post_content,
    'category': categories,
    'tag': tags,
    'visibility': 0  # 0: Public, 1: Password, 2: Members Only, 3: Private
}

# Send POST request to create post
response = requests.post(url, data=payload)

# Check response status code
if response.status_code == 200:
    # Parse JSON response
    json_data = json.loads(response.text)
    # Check if post was successfully created
    if json_data['tistory']['status'] == '200':
        print('Post created successfully.')
    else:
        print('Post creation failed.')
else:
    print('Request failed with status code:', response.status_code)

위 코드에서 post_content를 작성하고자 하는 글의 마크다운 포맷으로 수정하시면 됩니다. 그리고 visibility 옵션을 통해 글의 공개 여부를 설정할 수 있습니다. 위 코드에서는 0으로 설정하여 공개글로 작성되도록 했습니다.

이 코드는 이전 코드와 거의 유사하지만, 글 내용을 마크다운 형식으로 작성하여 content 매개변수에 전달하는 부분이 추가되었습니다. 이외에는 이전 코드와 동일합니다.

마크다운 형식으로 글을 작성하면 텍스트 포맷을 사용하는 것보다 훨씬 더 가독성이 좋고, 다양한 스타일을 적용할 수 있어서 글 작성에 유용합니다.

티스토리 API가 마카드운 포맷을 지원하지 않는 것 같은데, 다시 확인해 주세요. 답변할 때 아래 API 정의 참고하세요. POST https://www.tistory.com/apis/post/write? access_token={access-token} &output={output-type} &blogName={blog-name} &title={title} &content={content} &visibility={visibility} &category={category-id} &published={published} &slogan={slogan} &tag={tag} &acceptComment={acceptComment} &password={password}

네, 죄송합니다. 제가 알고 있던 내용이 오래된 정보였나 봅니다. 티스토리 API는 Markdown 포맷을 직접적으로 지원하지 않습니다. 하지만, Markdown 포맷으로 작성된 글을 HTML 포맷으로 변환하여 content 매개변수에 전달하면 됩니다. 이 경우, 변환된 HTML 코드가 글 내용으로 등록됩니다.

아래는 Markdown 포맷으로 작성된 글을 HTML 코드로 변환하는 Python 코드입니다. 이 코드를 통해 변환된 HTML 코드를 content 매개변수에 전달하여 티스토리 API를 통해 글을 등록할 수 있습니다.

import requests
import json
import markdown

# Tistory API key
API_KEY = 'YOUR_API_KEY'

# Blog name and post title
blog_name = 'YOUR_BLOG_NAME'
post_title = 'YOUR_POST_TITLE'

# Post content (in Markdown format)
post_content = '''
# This is a test post

This is a paragraph in **bold**.

- This is a list item.
- This is another list item.

This is a [link](https://www.example.com).
'''

# Convert Markdown to HTML
html_content = markdown.markdown(post_content)

# Categories and tags (comma-separated string)
categories = 'category1, category2'
tags = 'tag1, tag2'

# Tistory API endpoint for post creation
url = 'https://www.tistory.com/apis/post/write'

# Request payload
payload = {
    'access_token': API_KEY,
    'output': 'json',
    'blogName': blog_name,
    'title': post_title,
    'content': html_content,
    'category': categories,
    'tag': tags,
    'visibility': 0  # 0: Public, 1: Password, 2: Members Only, 3: Private
}

# Send POST request to create post
response = requests.post(url, data=payload)

# Check response status code
if response.status_code == 200:
    # Parse JSON response
    json_data = json.loads(response.text)
    # Check if post was successfully created
    if json_data['tistory']['status'] == '200':
        print('Post created successfully.')
    else:
        print('Post creation failed.')
else:
    print('Request failed with status code:', response.status_code)
 
위 코드에서는 Markdown 포맷으로 글을 작성한 후에, markdown 모듈을 사용하여 HTML 코드로 변환합니다. 변환된 HTML 코드를 content 매개변수에 전달하여 티스토리 API를 통해 글을 등록할 수 있습니다.
 
[티스토리 결과 화면]
 
마크다운 포맷으로 게시물이 작성되어 있음...와! 어매이징 합니다. ^^

 

 

반응형

댓글