mcpField
B
blogger

blogger

github.com/acedatacloudマーケティング・グロース17211 回インストール今日更新
リポジトリ

blogger について

blogger は、curl と jq で Blogger API v3 を操作するスキルです。投稿の公開や読み取り、更新に加え、認証や HTML コンテンツ、公開後の記録手順も扱います。

主な機能

  1. 01投稿の公開と下書き保存
  2. 02ブログ一覧と投稿の取得
  3. 03投稿の更新と下書き公開
  4. 04Markdown から HTML への変換
  5. 05公開した記事の成果記録

活用シーン

  1. 01Blogger ブログへの記事公開
  2. 02既存投稿の確認や更新
  3. 03ブログ ID の取得と投稿一覧の表示

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/acedatacloud/skills --skill blogger

インストール後、Claude Code で/bloggerを入力して読み込まれたか確認します。

詳細

curl + jq を使って Blogger API v3 を呼び出します。ユーザーの OAuth ベアラートークンは $GOOGLE_BLOGGER_TOKEN に格納されています。すべての呼び出しで Authorization: Bearer $GOOGLE_BLOGGER_TOKEN が必要です。ベース URL: https://www.googleapis.com/blogger/v3。

エラーは {"error": {"code": ..., "message": ...}} の形式です。内容をそのまま表示してください。 401 → トークンの有効期限が切れています。Blogger コネクターを再接続してください。

必ず最初にユーザーのブログを一覧表示して、blogId を取得してください:

curl -sS -H "Authorization: Bearer $GOOGLE_BLOGGER_TOKEN" \
  "https://www.googleapis.com/blogger/v3/users/self/blogs" \
  | jq '.items[] | {id, name, url}'

投稿を公開する

ユーザーから公開/投稿/发布/发出去を依頼された場合は、?isDraft=false(以下のデフォルト)を指定して公開状態で投稿してください。下書きとして保存して終了してはいけません。?isDraft=true を指定するのは、ユーザーが明示的に下書き、または公開前の確認を依頼した場合のみです。公開後は、返された公開済みの url を必ずユーザーに伝えてください。

BLOG_ID="1234567890"
jq -n --arg t "My title" --arg c "<p>HTML content of the post…</p>" \
  '{kind:"blogger#post", title:$t, content:$c, labels:["ai","video"]}' \
| curl -sS -X POST \
    "https://www.googleapis.com/blogger/v3/blogs/$BLOG_ID/posts/?isDraft=false" \
    -H "Authorization: Bearer $GOOGLE_BLOGGER_TOKEN" \
    -H "Content-Type: application/json" \
    -d @- \
| jq '{id, url, status}'

content は Markdown ではなく HTML です。先に Markdown を HTML に変換してください(例:pandoc -f markdown -t html または簡単なコンバーター)。

  • 下書きとして準備した投稿を公開する:POST /blogs/{blogId}/posts/{postId}/publish。
  • 投稿を更新する:同じ形式で PUT /blogs/{blogId}/posts/{postId}。

投稿の一覧表示/読み取り

curl -sS -H "Authorization: Bearer $GOOGLE_BLOGGER_TOKEN" \
  "https://www.googleapis.com/blogger/v3/blogs/$BLOG_ID/posts?maxResults=20&status=live" \
  | jq '.items[] | {id, title, url, published}'

注意事項

  • OAuth クライアントが使用する Google Cloud プロジェクトで Blogger API を有効にしてください。有効でない場合、呼び出しは accessNotConfigured で 403 エラーになります。
  • 403 "Method doesn't allow unregistered callers" は、リクエストにトークンが含まれていないこと($GOOGLE_BLOGGER_TOKEN が空)を意味します。Google Cloud の設定の問題と決めつけず、Blogger コネクターの再接続をユーザーに依頼してください。
  • 空の {"kind":"blogger#blogList"}(items がない状態)は、接続中の Google アカウントがブログを所有していないことを意味します。blogger.com でブログを作成するか、ブログを所有するアカウントで再接続するようユーザーに伝えてください。
  • content は HTML である必要があります。Markdown をそのまま渡すと、文字列どおりに表示されます。
  • 前のレスポンスの .nextPageToken を使って &pageToken=$PAGE_TOKEN を指定し、ページネーションしてください。

出力を記録する

投稿が正常に公開され、公開結果の URL を取得したら、組み込みの publish_artifact ツールを 1 回呼び出して、ユーザーが My Outputs でこの成果物を追跡できるようにしてください:

publish_artifact(kind="article", channel="blogger", title="<title>", url="<the REAL returned URL>", status="delivered")

実際に返された URL を使用してください。決して捏造してはいけません。公開した項目ごとに 1 回のみ、配信が確認された後に呼び出してください。公開に失敗した場合は呼び出しをスキップするか、status="failed" を使用してください。 _shared/artifacts.md を参照してください。

コメント