요즘은 많은 분들이 Windows 10 을 사용하실 걸로 생각이 되는데~ 사용하면 할 수록 Windows 10은 과거에 비해 참 많이 좋아진것 같습니다. Build 17063 업데이트를 통해 tar, curl 이 윈도우에 추가 되었다고 하더군요.

tar, curl 프로그램들은 Windows 10 의 C:\Windows\system32 폴더에 위치하고 있으므로 아무 위치에서나 그냥 편하게 사용하시면 되겠습니다.

저는 티스토리 블로그를 하면서 티스토리 open api 를 사용하는데 API 의 사용 방법을 알고 싶은 경우 바로 코딩하지 않고 CURL 을 사용하여 테스트를 먼저 해봅니다. 이런 경우 컴퓨터에 curl 이 설치되어 있는 경우는 상관이 없지만 curl이 설치되어 있지 않은 경우는 참 많이 불편하더군요. 저는 Windows 7 PC 를 사용하는 경우에는 Synology NAS 에 SSH 로 붙어서 curl 을 사용하곤 했습니다. 그런데 이러한 방식은 불편한것 같아서 검색을 해보니 onlinecurl 이라는 사이트가 검색 되더군요. onlinecurl 의 주소는 아래와 같습니다.

https://onlinecurl.com/

onlinecurl 홈페이지에 들어가 보면 아래와 같이 생겼는데 사용방법은 굉장히 직관적이어서 설명할 필요가 없을 것 같습니다. 간단히 CURL 의 명령어와 옵션, 결과를 받을 이메일 등을 넣어주고~ START YOUR CURL 버튼을 클릭해 주면 됩니다.

PC 에 CURL 이 설치되어 있지 않은 경우 또는 다른 컴퓨터에서 자신의 서버에 ping 을 하고 싶은 경우 매우 편리하게 사용 할 수 있을 것 같네요.



저는 보통 블로그에 포스팅을 할 때 티스토리 오픈 API를 주로 사용 합니다.


그런데 오늘 새벽에  티스토리 오픈 API로  포스팅을 하는데 기존에 잘 동작하던 코드가  동작을 하지 않더군요. 이미지뿐만 아니라 글도 자동으로 올리는데


바로 어제  저녁까지만 해도  정상적으로 동작을 했었는데...


오늘 새벽에는  티스토리 오픈 API 서버에 뭔가 문제가 있는 것 같네요.


아 !! CURL 로 응답 결과를 확인해 보니 '트래픽 부하로 인하여 블로그 사용이 잠시 중단되었습니다.' 라고 나오네요. 저는 잘~~ 되던 코드가 왜 안될까 하고 한참을 고민 했는데.... 암튼 시간이 지나면 해결될 것 같네요.





  1. 2018.07.30 11:02

    비밀댓글입니다

    • 남성 2018.07.30 14:39 신고

      아래 주소 글을 보고 인증을 받고 access_token 을 발급 받은 후에 CURL 을 통해 access_token 을 사용하시면 됩니다.

      로그인을 CURL 로 처리하진 않았습니다.

      https://www.tistory.com/guide/api/oauth


      아래 주소 참조해도 되겟네요.

      http://tariat.tistory.com/128

    • 2018.07.30 22:54

      비밀댓글입니다

  2. 남성 2018.07.30 23:13 신고

    시간 지나면 만료되는게 맞고요. 영구적인 토큰이 있는지는 모르겠습니다. 매번 로그인하고 토큰을 가져오는 형태로 구현을 해서 사용하고 있습니다. 파이썬으로 팬텀JS, 셀레니움을 써서 티스토리 로그인 자동화를 해서 토큰을 자동으로 얻어냅니다. curl 은 파이썬으로 구현한 코드가 정상적으로 동작이 안 될 때 확인 차원에서 테스트 용도로만 사용하고 있습니다.

    • 2018.07.30 23:36

      비밀댓글입니다

  3. 남성 2018.07.30 23:39 신고

    개인적으로는 파이썬이 편해서 사용하고 있습니다. 방문해 주셔서 감사합니다. ^^

기존에 저는 파이썬에서 selenium 을 사용하여 제가 필요한 웹관련 자동화를 해 왔습니다. 제 블로그에 일주일에 한 번씩 올라가는 로또 관련한 포스팅이나 매일 하고 있는 종목 검색 포스팅 등은 파이썬을 사용하여 Tistory Open API 로 포스팅이 되고 있습니다. 최근에 아래 포스팅에서 Autohotkey 에서 selenium 사용에 대해 소개 한 적이 있었는데, 파이썬에서 사용하던 method 이름과 조금 다르더군요.

http://iamaman.tistory.com/2021

그래서 오늘은 COM 객체 사용시 사용 가능한 함수 및 속성을 알아내는 방법에 대해서 소개하려합니다. 현재 자신의 컴퓨터에서 사용 가능한 COM 객체를 알고 싶은 분들은 아래 주소의 글을 참조해 보시기 바랍니다.

http://iamaman.tistory.com/2215

COM 객체 사용시 사용 가능한 함수 및 속성은 COM Object 의 멤버를 찾으면 되는 것입니다. 저는 현재 Autohotkey 에서 selenium 을 사용하여 chrome 을 자동화하고 있습니다. 그래서 selenium 의 함수 및 속성 을 찾아보려 합니다.

간단하게 Powershell 에서 아래와 같이 코딩하고 실행하면

$se = New-Object -ComObject Selenium.CHROMEDriver

$se | Get-Member

다음과 같이 사용 가능한 멤버 함수 및 속성의 목록을 확인할 수 있습니다.

확인을 해보니 Python 에서 selenium 을 사용할때는 멤버 함수 명이 소문자였고 언더바(_) 로 구분되는 형태였는데 Autohotkey 에서 selenium 을 사용할때는 그렇지가 않군요. 예를 들면 Python 에서는 find_element_by_id() 였다면 Autohotkey 에서는 FindElementById() 의 형태네요.



아래 포스팅에서도 밝힌 바와 같이 티스토리 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