아래 포스팅에서도 밝힌 바와 같이 티스토리 Open API 의 파일 첨부 API 는 이미지만 업로드 가능 합니다. 


http://iamaman.tistory.com/2077


저는 스크립트 언어로 주로 Python 을 활용하는데 Python으로 티스토리 Open API 의 파일 첨부 API 를 사용하여 이미지를 업로드 하는 방법에 대해 소개하려 합니다. 


위 링크의 글에서도 언급한 바와 같이 로또 포스팅의 텍스트는 Tistory Open API 를 활용하여 자동으로 업로드 하고 있고 Python 을 사용하고 있습니다. 


매번 반복되는 것들은 항상 자동화 하는게 좋죠.


파일 첨부 API 사용 코드는 아래와 같습니다. 아래 코드의 blogName, token, filepath 변수에 자신의 블로그에 맞게 원하는 파일을 설정하면 끝입니다.



위 코드를 실행해 보니 아래 가이드에서 확인한대로  status, url, replacer 값이 응답으로 오더군요. 

http://www.tistory.com/guide/api/post


status 는 응답코드로 200이 오면 정상으로 파일이 업로드 됐다는 뜻입니다. 정상이 아닐경우 400 이 뜹니다. url 은 말그래도 웹에서 접근할때의 그림 주소입니다. replacer 는 우리가 티스토리 글쓰기를 할때 해당 텍스트를 넣어주면 그림이 들어가는 겁니다. 

아래 그림과 같이 replacer 텍스트를 티스토리 에디터에서 붙여넣기하고

미리보기를 해보니 이렇게 그냥 그림이 나오더군요. 말그대로 텍스트로 해당 값을 넣어주면 그림으로 바뀌는 기능이더군요. 포스팅 작성시에 편리할것 같네요.


티스토리 블로그는 블로그 API를 통해서 글을 작성할 수 있었습니다. 블로그 APIMicrosoft Word 와 같은 외부 편집기 프로그램을 통해서 티스토리에 글을 게시하고 수정할 수 있는 API 입니다. 그런데 보안에 취약한 문제 등으로 2016 12월에 지원을 종료하였습니다. 대신에 오픈 API는 계속 사용할 수가 있습니다.

http://notice.tistory.com/2359

저는 아래 주소의 로또 관련 포스팅을 매주 자동으로 생성하고 있습니다. 로또 결과 발표가 나면 단순한 형태의 크롤링을 통해 로또 당첨번호를 가져오고~ 계속해서 안 나오고 있는 숫자들을 자동으로 찾습니다.

http://iamaman.tistory.com/category/%EB%A1%9C%EB%98%90

이후 포스팅할 로또 HTML 페이지를 생성 한 다음 티스토리 오픈 API를 통해서 로또 포스팅을 업로드 하고 있습니다.

http://www.tistory.com/guide/api/post

그런데 오픈 API 사용 실력이 딸리다 보니 텍스트 업로드는 알겠는데 파일 업로드는 잘 모르겠더군요. 매주 로또 파일이 업로드 되는데 글에 첨부되는 텍스트 파일 업로드를 자동으로 하는 방법을 잘 모르겠어서, 로또 파일 업로드는 수동으로 처리하고 있습니다. 

오픈 API를 확인해 보면 파일 첨부 API가 있습니다. 파일 첨부 API를 사용해서 텍스트 파일을 업로드를 여러 번 시도해 봤지만 정상적으로 동작하지 않았습니다. 그래서 이번에는 제가 가지고 있는 Synology NAS 에 터미널로 붙어서 CURL을 통해 티스토리 블로그에 파일첨부를 시도해봤습니다.

curl -F 'access_token=access_token값' \

     -F 'blogName=iamaman' \

     -F 'uploadedfile=@./lotto.txt' \

     https://www.tistory.com/apis/post/attach

텍스트 업로드를 시도하자 아래 그림과 같이 이미지만 업로드 할 수 있다고 에러 메시지가 뜨더군요. ~! 결과적으로 오픈 API의 파일 첨부 API를 사용해서는 텍스트 파일은 업로드 할 수 없다는걸 이제야…. 알게 됐습니다.


같은 방법으로 이미지파일을 업로드 해 보니 정상적으로 첨부가 되더군요.  정상적으로 동작하면 응답값 200을 받습니다.

그럼 텍스트 파일을 이미지 확장자로 만든 다음에 업로드 해 보면 어떻게 될까... 해서 해 봤는데... 역시나 안되더군요. 


이 글을 보시는 분들은 저처럼 Tistory Open API 를 통해 텍스트 파일 첨부하려고 뻘짓하지 마시기 바랍니다.


+ Recent posts