tistory

3.0.0 • Public • Published

tistory.js

티스토리 오픈 API 래퍼입니다.

설치

npm install --save tistory

시작하기

엑세스 토큰

const http = require('http')
const url = require('url')
const Tistory = require('tistory')

http.createServer(async function (req, res) {
  const tistory = new Tistory()
  const code = url.parse(req.url, true).query.code

  if (code) {
    await tistory.setAccessToken('__APP_ID__', '__SECRET_KEY__', '__CALLBACK__', code)

    // 요청 ...
  } else {
    res.writeHead(302, {
      Location: tistory.getPermissionUrl('__APP_ID__', '__CALLBACK__', 'code')
    })
  }

  res.end()
}).listen(8080)

tistory.getPermissionUrl() 를 사용하면 인증을 위한 티스토리 주소를 얻어올 수 있습니다. 사용자가 허용을 하면, 설정한 __CALLBACK__ 으로 리다이렉트되면서 code 값이 GET 파라매터로 넘어오게 됩니다. tistory.setAccessToken() 으로 내부적으로 엑세스 토큰을 설정합니다.

요청

티스토리에 요청하려면 tistory.get(), tistory.post() 을 사용합니다. 요청 주소가 https://www.tistory.com/apis/blog/info 인 경우, https://www.tistory.com/apis/ 를 제외한 blog/info 를 매개변수로 하여 요청을 보낼 수 있습니다.

티스토리 오픈 API 에서 GET 요청시에는 item 프로퍼티가 존재합니다.

// GET https://www.tistory.com/apis/blog/info
const { data } = await tistory.get('blog/info')

for (const blog of data.tistory.item.blogs) {
  //
}

요청 시에는 추가 매개변수가 필요할 수도 있습니다. 또한 POST 요청에는 item 프로퍼티가 포함되지 않습니다.

const { data } = await tistory.post('post/write', {
  blogName: 'pronist',
  title: 'Hello, world',
  visibility: 0
})

console.log(data.tistory.url)

파일 업로드

파일을 첨부하려면 단순히 fs.createReadStream() 으로 넘겨줄 수 있습니다. 티스토리 제약으로 인해 이미지만 가능합니다.

const fs = require('fs')

// GET https://www.tistory.com/apis/post/attach
const { data } = await tistory.post('post/attach', {
  blogName: 'pronist',
  uploadedfile: fs.createReadStream('path/to/file.png')
})

저작권

MIT

Copyright 2018-2020. SangWoo Jeong. All rights reserved.

Readme

Keywords

Package Sidebar

Install

npm i tistory

Weekly Downloads

0

Version

3.0.0

License

MIT

Unpacked Size

6.53 kB

Total Files

4

Last publish

Collaborators

  • pronist