devto について
curl と jq で Forem API を利用し、dev.to の記事を管理するスキルです。下書きの作成、公開、編集に加え、記事やエンゲージメント統計の確認にも対応します。
主な機能
- 01API 認証情報とアカウントを確認
- 02記事の下書き作成または公開
- 03記事の編集と下書きの公開
- 04記事一覧、本文、統計の確認
- 05クロスポスト用の canonical URL 設定
活用シーン
- 01Markdown 記事を下書きとして保存
- 02dev.to で記事を公開または更新
- 03記事の閲覧数、リアクション、コメントを確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ acedatacloud/ skills --skill devtoインストール後、Claude Code で/devtoを入力して読み込まれたか確認します。
詳細
curl + jq を使って Forem API v1(dev.to)を呼び出します。ユーザーの API キーは
$DEVTO_API_KEY にあります。すべての呼び出しで、ヘッダー api-key: $DEVTO_API_KEY と
Accept: application/vnd.forem.api-v1+json が必要です。ベース URL は https://dev.to/api です。
エラーは error/status フィールドを含む JSON で返されます。そのまま表示してください。
401 は API キーが無効であることを意味します → ユーザーは DEV コネクターに再接続する必要があります。
必ず最初にキーを確認し、アカウント情報を取得してください。
curl -sS -H "api-key: $DEVTO_API_KEY" -H "Accept: application/vnd.forem.api-v1+json" \
"https://dev.to/api/users/me" | jq '{username, name}'
記事を公開する
公開前にユーザーに確認してください。 明示的に公開/今すぐ公開すると言われない限り、下書き(published:false)をデフォルトにします。
TITLE="My title"
BODY_MD="$(cat article.md)" # full Markdown body
jq -n --arg t "$TITLE" --arg b "$BODY_MD" \
'{article:{title:$t, body_markdown:$b, published:false, tags:["ai","webdev"]}}' \
| curl -sS -X POST "https://dev.to/api/articles" \
-H "api-key: $DEVTO_API_KEY" \
-H "Accept: application/vnd.forem.api-v1+json" \
-H "Content-Type: application/json" \
-d @- \
| jq '{id, url, published}'
後から下書きを公開する(または編集する)には、同じ形式で PUT /api/articles/{id} を呼び出します(published:true を設定)。body_markdown 内のフロントマター(--- ブロック)にも、title、tags、series、canonical_url、cover_image を指定できます。
- 正規 URL: クロスポストする場合は、
"canonical_url":"https://your-blog/original"を設定して、DEV の SEO 評価をソースに戻します。これは記事→動画/クロスパブリッシングのワークフローで重要です。
記事の一覧表示/確認
# My published + draft articles (paginated; per_page max 1000).
curl -sS -H "api-key: $DEVTO_API_KEY" -H "Accept: application/vnd.forem.api-v1+json" \
"https://dev.to/api/articles/me/all?per_page=30" \
| jq '.[] | {id, title, published, page_views_count, public_reactions_count, comments_count}'
# A single article's full content + stats.
curl -sS -H "api-key: $DEVTO_API_KEY" -H "Accept: application/vnd.forem.api-v1+json" \
"https://dev.to/api/articles/ARTICLE_ID" | jq '{title, url, reactions: .public_reactions_count, views: .page_views_count}'
注意点
- タグ: 最大 4 個、小文字、スペースなし(例:
webdev、machinelearning)。 - レート制限: 記事の作成/更新にはレート制限があります(30 秒あたり数件)。一括公開は間隔を空けないと
429が返されます。 body_markdownが正となる情報源です。先頭に---のフロントマターブロックを置くと、そのフィールドが JSON のarticleフィールドより優先されます。
出力を記録する
公開に成功し、公開結果の URL を取得したら、組み込みの
publish_artifact ツールを 1 回呼び出して、ユーザーがこの成果物を マイ出力 で追跡できるようにします。
publish_artifact(kind="article", channel="devto", title="<title>", url="<the REAL returned URL>", status="delivered")
実際に返された URL を使用してください。決して捏造しないでください。公開されたアイテムごとに 1 回だけ呼び出し、配信が確認された後にのみ実行します。公開に失敗した場合はスキップするか、status="failed" を使用してください。
_shared/artifacts.md を参照してください。