todo in todoist über die Rest API anlegen

Wie erstellt man in todoist ein neues todo über die Rest API? In diesem kurzen Beitrag erkläre ich dir, wie du die Payload aufbauen musst, um über die Rest API in todoist ein neues todo anzulegen. Alles, was du hierfür brauchst, ist deinen API-Token, eine Projekt-ID und natürlich ein todo 😉

Ich nutze todoist im privaten für so ziemlich alles. Unter anderem erstellt mir auch mein Smarthome (Home Assistant) regelmäßig todos. Bislang habe ich hierfür die zur Verfügung stehende todoist-Integration genutzt. Da ich mir in Home Assistant aber keine todos anzeigen lasse, sondern lediglich von Home Assistant todos in todoist anlegen lassen möchte, ist diese Integratoin für meine Zwecke ein Overkill.

Also habe ich die Integration wieder entfernt und den entsprechenden API-Request manuell erstellt. Wie bereits eingangs erwähnt, benötigt man hierfür lediglich den todoist API-Token sowie eine Projekt-ID.

Den todoist API-Token findest du am einfachsten wenn du todoist im Browser aufrufst und dann oben links über deinen Account-Namen die Einstellungen aufrufst. Dort wechselst du dann zu Integrationen und dort zu Developer. Durch Klicken auf das Auge sollte dir dann dein todoist API-Token angezeigt werden:

todoist API-Token aufrufen

Deinen API-Token musst du geheim halten und schützen, da man (wie du gleich im Code sehen wirst) Änderungen an deinen todos vornehmen kann!

Als nächstes benötigst du eine Projekt-ID, in der du das neue todo einsortieren möchtest.

Eine todoist Projekt-ID findest du, indem du todoist erneut im Browser aufrufst und eines deiner Projekte auswählst. In der Adresszeile deines Browser wird dir nun die Projekt-ID angezeigt:

Projekt-ID aus todoist ermitteln

Mit deinem todoist API-Token und der Projekt-ID kannst du nun den eigentliche API-Request aufbauen.

Die Payload beinhaltet immer

  • content: Was ist dein neues todo?
  • project_id: Deine Projekt-ID.
  • due_string: Wann ist das neue todo fällig?
  • due_lang: in welcher Sprache ist der due_string angegeben?

Die Payload kann noch weitere optionale Angaben beinhalten, die ich aber nicht benötige. Eine Übersicht findest du in der todoist-Doku für die API.

Für Home Assistant sieht mein YAML-Code wie folgt aus:

rest-command:
  todoist_add_todo:
    url: https://api.todoist.com/rest/v2/tasks
    method: POST
    headers:
      authorization: "Bearer DEIN_INDIVIDUELLER_TOKEN"
      content-type: "application/json"
      X-Request-Id: "$(uuidgen)"
    payload: '{"content": "Keller wischen", "project_id": "PROJECT-ID", "due_string": "Tomorrow", "due_lang": "en"}'

Nach einem Neustart von Home Assistant sollte dir ein neuer service restful_command.todoist_add_todo zur Verfügung stehen.

Foto des Autors
Autor
Olli
Ca. Ende 30, seit Windows 3.1 Fan von Computern, Gadgets, Handys und allem, was sich irgendwie programmieren lässt. Ich mag es gerne individuell und möglichst einfach, probiere aber auch gerne neue Dinge sofort aus. :) Konnte ich dir helfen? Dann würde ich mich über ein Bier freuen ;) Bier-Spende

Schreibe einen Kommentar