😭

TodoistのAPIがv9になって困っている【解決済み】

2022/12/19に公開1

背景

  • TodoistのAPIがいつの間にかv9になっていた。
    • 元々使っていたスクリプトが使えなくなった。
    • 修正しなきゃ

やりたいこと

  • 図書館(仙台市図書館)のOPACからBeaoutifulSoupで貸出情報を取得
    • この部分は今回は省略
  • TodoistのAPIを使って、取得した書名と返却期限をTodoistに追加したい。
    • APIのバージョン更新で従来のものが使えなくなったので修正したい。

やったこと

  • まずはpipインストール
pip install todoist-api-python

コード


from todoist_api_python.api import TodoistAPI

api_token = '***Todoist API token***'

api = TodoistAPI(api_token)

# プロジェクト一覧を取得
try:
    projects = api.get_projects()
    print(projects)
except Exception as error:
    print(error)

  • なぜかうまくいかない
410 Client Error: Gone for url: https://api.todoist.com/rest/v1/projects

解決策があればご教示いただけると幸いです…

これまで使っていたスクリプト

import todoist

api = todoist.TodoistAPI('***Todoist API token***')
api.sync()


#タスク追加
# book_dictは書名と返却期限の辞書
for x, y in book_dict.items():
    y = y.replace('/', '-')
    item = api.items.add(x, project_id=*********, due={
                         "date": y}, labels=[*******])
    api.commit()

参考リンク

Discussion

gossiegossie

最近、わたくしもtodoist_api_pythonを新しいものに変更しました。
エラーを拝見すると、依然todoistのrest apiのv1を使おうとしているようにみえました。
rest apiは、現在だとv2なはずなので、todoist_api_pythonが古いままなのかもしれません。

Lib\site-packages\todoist_api_python\endpoints.py

の先頭のほうに、

BASE_URL = "https://api.todoist.com"
AUTH_BASE_URL = "https://todoist.com"
SYNC_VERSION = "v9"
REST_VERSION = "v2"

のように定義されていたりするので、REST_VERSIONがv1のままだったりしたら、todoist_api_pythonを以下のようにバージョンを指定したりしてインストールし直すと解決するかもしれません。

>pip install todoist-api-python==2.0.2

すでに解決されていたらすみません。