본문 바로가기
프로그래밍/PYTHON

[파이썬] PYTHON 을 활용한 티스토리 자동 포스팅 (파이썬으로 글올리기)(2/3)

by 루티즈 2023. 6. 16.
반응형

Python의 requests 라이브러리를 사용하여 API 요청을 처리합니다. API 키와 블로그 정보를 적절히 입력하고 실행함.

import requests

# API 키
API_KEY = "YOUR_API_KEY"

# 블로그 정보
BLOG_NAME = "YOUR_BLOG_NAME"
CATEGORY_ID = "YOUR_CATEGORY_ID"  # 업로드할 카테고리 ID
TAGS = ["tag1", "tag2"]  # 업로드할 태그 목록

# 글과 그림 정보
POST_TITLE = "글 제목"
POST_CONTENT = "글 내용"
IMAGE_PATH = "path/to/image.jpg"  # 업로드할 그림 파일 경로

# API 요청 URL
url = f"https://www.tistory.com/apis/post/write"
params = {
    "access_token": API_KEY,
    "output": "json",
    "blogName": BLOG_NAME,
    "title": POST_TITLE,
    "content": POST_CONTENT,
    "category": CATEGORY_ID,
    "tag": ",".join(TAGS),
}

# 그림 파일 업로드 요청
files = {"uploadedfile": open(IMAGE_PATH, "rb")}
response = requests.post(url, params=params, files=files)

# API 요청 결과 확인
if response.status_code == 200:
    data = response.json()
    if data["tistory"]["status"] == "200":
        print("글 업로드 성공!")
    else:
        print("글 업로드 실패:", data["tistory"]["error_message"])
else:
    print("API 요청 실패:", response.status_code)

 

위의 코드에서 YOUR_API_KEY, YOUR_BLOG_NAME, YOUR_CATEGORY_ID 및 IMAGE_PATH를 실제 값으로 대체해야 합니다. 또한 TAGS 변수에 업로드할 글의 태그 목록을 지정할 수 있습니다.

 

이 예시 코드는 글 제목, 내용, 그림 파일 경로를 변수로 지정하여 API를 통해 업로드합니다. requests 라이브러리를 사용하여 POST 요청을 보내고, API 응답을 확인하여 업로드 결과를 출력합니다. 업로드 성공 시 "글 업로드 성공!"이 출력되고, 실패 시 실패 메시지가 출력됩니다.

 

이 코드를 참고하여 필요에 맞게 수정하고 실행해보세요. API 키와 블로그 정보, 글과 그림 정보를 적절히 설정하여 자동으로 글과 그림을 업로드할 수 있습니다.

 

이런 식으로 올리면 단순하게 글과 이미지 한개만 올라간다.

 


여러개의 그림이나 글을 올리려면 당연히 업로드 할때 

HTML 형식으로 올려야 글 내용이 제대로 올라가진다.

 

import requests

# API 키
API_KEY = "YOUR_API_KEY"

# 블로그 정보
BLOG_NAME = "YOUR_BLOG_NAME"
CATEGORY_ID = "YOUR_CATEGORY_ID"  # 업로드할 카테고리 ID
TAGS = ["tag1", "tag2"]  # 업로드할 태그 목록

# 글 정보
POST_TITLE = "글 제목"
POST_CONTENT = """
<p>글 내용</p>
<p><img src="이미지_파일_경로" alt="이미지_설명"></p>
"""

# API 요청 URL
url = f"https://www.tistory.com/apis/post/write"
params = {
    "access_token": API_KEY,
    "output": "json",
    "blogName": BLOG_NAME,
    "title": POST_TITLE,
    "content": POST_CONTENT,
    "category": CATEGORY_ID,
    "tag": ",".join(TAGS),
}

# API 요청
response = requests.post(url, params=params)

# API 요청 결과 확인
if response.status_code == 200:
    data = response.json()
    if data["tistory"]["status"] == "200":
        print("글 업로드 성공!")
    else:
        print("글 업로드 실패:", data["tistory"]["error_message"])
else:
    print("API 요청 실패:", response.status_code)

 

위의 코드에서 YOUR_API_KEY, YOUR_BLOG_NAME, YOUR_CATEGORY_ID, POST_TITLE, POST_CONTENT를 실제 값으로 대체해야 합니다. POST_CONTENT 변수에 HTML 형식의 글 내용을 작성할 수 있습니다. <img> 태그를 사용하여 이미지를 추가하고, src 속성에 이미지 파일 경로를 지정합니다. alt 속성은 이미지의 대체 텍스트로, 이미지를 설명하는 텍스트를 입력합니다.

 

이렇게 작성된 글 내용을 API 요청의 content 매개변수에 전달하여 업로드하면, 글 내용에 이미지가 포함된 글이 티스토리에 업로드됩니다.


 

이미지를 2개 이상 넣기 위해서는 글 내용에 여러 개의 <img> 태그를 추가하면 됩니다. 각 이미지에 대해 업로드를 수행한 후, 해당 이미지의 URL을 <img> 태그의 src 속성에 동적으로 삽입하면 됩니다. 아래는 이미지를 2개 넣는 예시 코드입니다:

 

import requests

# API 키
API_KEY = "YOUR_API_KEY"

# 블로그 정보
BLOG_NAME = "YOUR_BLOG_NAME"
CATEGORY_ID = "YOUR_CATEGORY_ID"  # 업로드할 카테고리 ID
TAGS = ["tag1", "tag2"]  # 업로드할 태그 목록

# 글 정보
POST_TITLE = "글 제목"
POST_CONTENT = "<p>글 내용</p>%s"

# API 요청 URL
upload_url = "https://www.tistory.com/apis/post/attach"
write_url = "https://www.tistory.com/apis/post/write"

# 이미지 파일 경로 리스트
image_files = [
    "path/to/image1.jpg",
    "path/to/image2.jpg",
    "path/to/image3.jpg",
    "path/to/image4.jpg",
    "path/to/image5.jpg",
    "path/to/image6.jpg",
    "path/to/image7.jpg",
    "path/to/image8.jpg",
    "path/to/image9.jpg",
    "path/to/image10.jpg",
]

# 이미지 파일 업로드
image_urls = []
for file_path in image_files:
    image_file = open(file_path, "rb")
    image_data = {"uploadedfile": image_file}
    response = requests.post(upload_url, params={"access_token": API_KEY}, files=image_data)

    # API 요청 결과 확인
    if response.status_code == 200:
        data = response.json()
        if data["tistory"]["status"] == "200":
            image_url = data["tistory"]["url"]
            image_urls.append(image_url)
        else:
            print("이미지 업로드 실패:", data["tistory"]["error_message"])
    else:
        print("API 요청 실패:", response.status_code)

# 글 내용에 이미지 태그 추가
img_tags = ""
for url in image_urls:
    img_tags += f'<p><img src="{url}" alt="이미지_설명"></p>\n'
POST_CONTENT = POST_CONTENT % img_tags

# 글 업로드
params = {
    "access_token": API_KEY,
    "output": "json",
    "blogName": BLOG_NAME,
    "title": POST_TITLE,
    "content": POST_CONTENT,
    "category": CATEGORY_ID,
    "tag": ",".join(TAGS),
}
response = requests.post(write_url, params=params)

# API 요청 결과 확인
if response.status_code == 200:
    data = response.json()
    if data["tistory"]["status"] == "200":
        print("글 업로드 성공!")
    else:
        print("글 업로드 실패:", data["tistory"]["error_message"])
else:
    print("API 요청 실패:", response.status_code)

 

[이전글]

2023.06.15 - [프로그래밍/PYTHON] - [파이썬] PYTHON 을 활용한 티스토리 자동 포스팅 (with openapi-티스토리)(1/3)

[다음글]

2023.06.16 - [분류 전체보기] - [파이썬] PYTHON 을 활용한 티스토리 자동 포스팅 (다른 API 연동_자동 이미지넣기)(3/3)

 

반응형