Mochi Cardsとは?
MochiCardsは暗記用のフラッシュカードを作成する(Web/モバイル)アプリです。
効率よく長期記憶に定着させるための分散学習を行うことに最適化されており、忘れた頃に問題が出題されるため、長期記憶の強化に最適化されています。
詳細に再出題の頻度などを設定できる点や、類似のアプリAnkiと比較してUIが優れていること、モバイルとPCでも同期(要サブスク)して使用できるため外出先でも使用可能なことなどが優れています。
サブスクが必要になりますが、APIを使用することでカードの作成が可能なため、他のアプリからの移行や、まとめてカードの設定を変更するなどを簡単に行うことができます。
今回はPythonからAPIを使用してカードを登録する例をご紹介します。
Mochi CardsのAPIを使用するにはサブスクが必須となります。
Pythonによるスクリプトの例
requestsライブラリのインストール
pip install requests
カード作成スクリプト例
import requests
from requests.auth import HTTPBasicAuth
import json
# APIのエンドポイントとAPIキー
API_URL = "https://app.mochi.cards/api/cards"
API_KEY = "ここにAPIキー"
# カード作成のためのデータ
payload = {
"content": "これはAPIから作成されたカードです。",
"deck-id": "ここにdeck-id"
}
# ヘッダー情報
headers = {
"Content-Type": "application/json"
}
# 認証情報の設定
auth = HTTPBasicAuth(API_KEY, '')
# POSTリクエストでカードを作成
response = requests.post(API_URL, headers=headers, data=json.dumps(payload), auth=auth)
# レスポンスの確認
if response.status_code == 200:
print("カードが正常に作成されました。")
print("レスポンスデータ:", response.json())
else:
print(f"エラーが発生しました。ステータスコード: {response.status_code}")
print("エラーメッセージ:", response.text)
特筆すべき点としては、Mochi APIでは認証にBase64でエンコードした認証ヘッダーが必要となります。
# 認証情報の設定
auth = HTTPBasicAuth(API_KEY, '')
成功時は以下のような出力例となります。
カードが正常に作成されました。
レスポンスデータ: {'tags': [], 'content': 'これはAPIから作成されたカードです。', 'name': 'これはAPIから作成されたカードです。', 'deck-id': '3OBZo9wR', 'cloze/indexes': [], 'pos': 'U', 'references': [], 'id': 'QQjTjApk', 'reviews': [], 'created-at': {'date': '2024-11-16T13:32:43.678Z'}, 'new?': False, 'template-id': None}
APIに必要な情報の取得場所
APIキー
左上にあるユーザー名の'Account settings'から
開いたモーダルをスクロールすると現れる'Create API Key'でAPIキーを生成できます。
Deck ID
Deckを右クリックすると現れる'Copy ID'から取得できます。
[[3OBZo9wR]]のように、[[ ]]を含む形式でコピーされますが、必要な情報は内部のテキストな点に注意が必要です。
参考
分散学習
mochi 公式
mochi API Document