키보드-타이핑-하는-모습
코딩

toodledo는 할 일 관리 서비스로 task, note, outline 등 다양한 방식으로 목록을 관리하는 기능을 제공합니다. 웹페이지뿐만 아니라 API도 제공하여 편리하게 사용할 수 있는데요. 이를 이용해서 자동화도 가능합니다. toodledo api 이용하는 방법을 알아보았습니다.

 

 

1. 원하는 입맛의 할일 통계와 차트 만들기

할일할 일 목록은 보통 중요성과 긴급성으로 나누는데요. 이런 분류 체계는 각각의 할 일을 자신의 비전에 맞추어 얼마나 잘 분류하느냐가 핵심입니다. 모든 일이 다 중요하거나 긴급하다면 분류하는 의미가 없으므로 하루를 기준으로 처리 가능한 수준으로 중요한 일을 정리해야 합니다. 분류된 체계를 확인하는 가장 좋은 방법은 그래프인데요. toodledo에서는 할 일들의 현황을 그래프로 보여주는 기능이 있습니다.

 

toodle-할일-차트
toodledo-할일-차트

 

파이 차트부터 라인 그래프, 버블 그래프 등 다양한 형태의 그래프를 그릴 수 있는 기능을 제공하고 있는데요. 하지만 해당 기능을 이용하려면 업그레이드를 해야 합니다. silver로 업그레이드 하면 Graphs 기능이 가능합니다. 1년에 2만 원 꼴로 큰 금액은 아니지만 차트 때문에 돈을 지불하기는 조금 아쉽습니다. 좀 더 찾아본 결과 toodledo에서 api를 지원하는 것을 알게 되었습니다.

 

 

2. API 이용하기

API를 통해서 toodledo에서 제공하는 기능에 대부분 접근이 가능했습니다. Tasks, Notes, Outlines, Lists에 접근이 가능합니다. 잘 사용하면 굉장히 유용하게 쓸 수 있을 거라는 생각이 듭니다.

 

우선 Tasks 항목에 들어가 보니 Retrieving Tasks라고 하여 할일들을 가져오는 기능이 있습니다. 원하는 기능이 있으니 이 기능을 잘 사용하면 되겠습니다. 참고로 Retrieve는 '되찾아오다, 검색하다'라는 뜻입니다. 검색하여 원하는 tasks를 가져올 수 있기 때문에, Retrieving Tasks라고 한 듯합니다. 할 일 목록인 Tasks 관련해서는 아래와 같은 기능을 제공하고 있습니다.

  • Retrieving Tasks
  • Adding Tasks
  • Editing Tasks
  • Deleting Tasks
  • Deleted Tasks
  • Errors

 

3. API 사용법

API 시용하는 방법은 아래 사이트에서 확인할 수 있습니다. 사이트에서도 설명이 잘 돼 있어 사용하기가 편리합니다.

 

 

toodledo api documentation 사이트 주소는 http://api.toodledo.com/ 입니다.

 

1) 등록하기

toodledo api를 이용하기 위해서는 인증을 받아야 합니다. API문서를 대충 훑어본 결과 기존에 다른 API에서 인증받는 방식과 동일하게 가능함을 알 수 있었습니다. 우선은 API를 사용하기 위해서 나의 App을 등록해야 합니다. App은 아니지만 등록 페이지로 이동합니다. API 등록 페이지 주소는 http://api.toodledo.com/3/account/doc_register.php 입니다. 

 

2) 인증 코드 받기

특이하게 원하는 클라이언트 ID를 등록할 수 있습니다. 등록하고 나면 원하는 ID로 등록이 됐는지와 Secret 코드를 받을 수 있습니다. 등록하고 나면 아래의 주소를 아래의 주소에 접속하라고 합니다.

 

https://api.toodledo.com/3/account/authorize.php?response_type=code&client_id=[부여받은 client_id를 넣는다]&state=YourState&scope=basic%20tasks

 

client_id에는 내 클라이언트 ID를 넣으면 됩니다. 특이한 점은 state에 random string을 넣으라고 합니다. cross-site request forgery를 막기 위해서라고 하네요. toodledostat이 toodledo Account에 접속을 하고 싶냐고 나옵니다. API를 사용하겠냐는 뜻과 동일하다고 무방합니다. "Sign in"을 누르면 redirect url로 지정한 곳에 code라고 해서 인증코드가 포함된 주소가 회신됩니다.

 

3) access_token 받기

특이하게도 code를 받는 것으로 끝나지 않았다. 받은 코드를 가지고 다시 access_token을 받아야 했습니다.

 

4) 파이썬 코드 구현

위 주소를 매번 위와 같이 작업하기는 귀찮으니 간단하게 파이썬 코드로 만들었습니다.

# coding=utf-8
# toodledo 인증 받기

from urllib.request import urlopen
import pandas as pd
from bs4 import BeautifulSoup
import webbrowser
import random
import request

def auth():
    client_id = "부여받은 client_id를 입력"
    secret = "부여받은 secret"
    scope = "basic%20tasks"
    state = int(random.random() * 10000)
    url = "https://api.toodledo.com/3/account/authorize.php?response_type=code&client_id=" + client_id + "&state=" + str(state) + "&scope="+scope

    webbrowser.open(url)

    return_url = input("redirect url의 주소를 입력하세요.")
    code = return_url.split("=")[1].split("&")[0]

    request_url=f"https://{client_id}:{secret}@api.toodledo.com/3/account/token.php"
    params = {"grant_type":"authorization_code", "code":code}
    response = requests.post(request_url,params)

    # print(response.text)

    result=response.json()
    access_token=result["access_token"]

    return access_token


if __name__ == "__main__"
    # 인증token값을 acess_token에 저장한다.
    access_token = auth()

 

인증을 받고 나니 글이 길어졌습니다. 이제 부여받은 access_token을 가지고 Tasks를 불러오고 편집하면 되겠습니다. 실제 Tasks를 추출해오는 작업은 다음 포스팅에 이어서 작성하겠습니다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기