Publishing

Content API

Surpassoに保存した公開記事を自社サイトで表示します。

設定時間の目安:10分

読者がブログを開くと、サイトのサーバーがSurpassoから公開記事を読み込みます。既存ブログ管理画面へ記事自体を保存する場合はWebhookを使います。

準備

  • サイトのAI開発ツールまたは保守担当者。
  • ホスティング設定を変更する権限。

サイトツールへ説明を渡す

既存デザイン、記事、リンクを保ちながらSurpasso記事をブログへ追加するよう、次の指示をコピーします。

接続手順を表示
Surpasso は企業の SEO・GEO 記事の企画、執筆、公開を支援する製品です。既存サイトを Surpasso に接続してください。最初にフレームワーク、ブログのルート、記事の保存方法、デザイン、デプロイ方法を確認し、既存機能を優先して再利用します。サイトを作り直したり、既存記事を削除・上書きしたりしないでください。

Content APIを使用します。サイトのサーバー側で Surpasso の公開済み記事を読み取ります。記事は Surpasso で管理され、ローカル CMS へ自動コピーされません。サーバー環境変数:SURPASSO_URL=https://surpasso.ai、SURPASSO_CONTENT_API_KEY=<デプロイ設定で安全に構成>。Authorization: Bearer にサーバー側キーを使用し、NEXT_PUBLIC_ は使わないでください。

実際の API:GET /api/content/v1/articles?limit=50 は {items:[article],nextCursor} を返します。nextCursor があれば cursor パラメーターで次ページを取得します。GET /api/content/v1/articles/{id-or-slug} は {item:article} を返します。updated_since で更新を絞り込めます。読めるのは公開済み記事のみです。空の一覧は接続失敗ではなく、テスト目的で下書きを自動公開しないでください。401、404、429(Retry-After を尊重)、一時エラーを処理します。ETag / If-None-Match と 304 に対応し、304 を JSON として解析しないでください。

フィールド対応:id は安定した記事識別子、revision はコンテンツ版、title は見出し、slug は記事パス、excerpt は要約、contentMarkdown / contentHtml は本文(既存エディターに合う形式を選び、HTML は安全に処理)、metaTitle / metaDescription は SEO メタデータ、featuredImage.url / alt はカバー画像と代替テキスト、images は本文画像、author / authorType / authorUrl は著者、editor / reviewer と各 Type / Url は編集クレジット、categories / tags は分類、language はコンテンツ言語、contentFamilyId / alternates は多言語関係とリンク、structuredData は構造化データ、canonicalUrl は正規 URL です。最終 URL にはサイトの実際の公開パスを使い、誤った canonical をコピーしないでください。null は適切に処理し、未対応の任意フィールドで公開を止めないでください。

記事には日付表示とキャッシュ更新用の publishedAt と updatedAt も含まれます。既存ブログのパスを再利用し、一覧、詳細、安全な本文表示、SEO、canonical、Open Graph、言語リンク、Sitemap を補います。既存記事と URL は保持してください。成功した取得結果をキャッシュし、一時障害では可能な限りキャッシュを表示し、更新反映までの待ち時間を説明します。

必要な確認を実行した後、変更した機能、デプロイ手順、設定する環境変数名と設定先、Surpasso に戻して入力する URL、記事の新規公開と更新を確認する方法を、一般ユーザーにも分かる言葉で説明してください。秘密情報はサイトのデプロイ環境の環境変数で設定するよう案内し、チャット、Git、ブラウザーコードには入れさせないでください。

キーと環境変数を設定する

SurpassoのIntegrations → Custom → Content APIでキーを作り、表示中に保存します。ホスティングへSURPASSO_URL=https://surpasso.aiとSURPASSO_CONTENT_API_KEY=<作成したキー>を追加し、サイトを再デプロイします。記事リンクが自社ドメインを使うことも確認します。

記事と読取を確認する

Content Calendarで記事を公開し、自社ブログで本文、画像、リンクを確認します。接続画面の読取状況を確認でサイトからのAPI呼出を確認し、ページ自体も目視します。Surpassoで編集・再公開し、キャッシュ更新後に同じページが変わることを確認します。

公開記事だけが表示され、下書きは非公開です。この方式はサイト固有のブログ管理画面へ記事を追加しません。

記事がない、エラー、編集反映が遅い

記事が公開済みで、このサイト用キーを環境変数へ保存後に再デプロイしたか確認します。空一覧は一致する公開記事なし、401はキー、記事欠落はサイトリンクを確認します。サイトのキャッシュにより編集反映が遅れる場合は更新間隔を開発ツールへ確認してください。

キーを紛失・漏えいした

接続でキーを交換し、ホスティングのSURPASSO_CONTENT_API_KEYを更新して再デプロイします。旧キーは無効になり再表示できません。

技術仕様:APIと記事フィールド

サーバーからAuthorization: Bearer <server-side-key>を送ります。GET /api/content/v1/articles?limit=50は一覧、GET /api/content/v1/articles/{id-or-slug}は1件を返します。limitは1〜50、nextCursorをcursorへ渡し、updated_sinceで更新日時を絞れます。ETag/If-None-Matchと304に対応し、空の304本文をJSON解析しないでください。接続ごとに毎分600リクエストで、429のRetry-Afterと401、404、一時障害を分けて処理します。

記事にはid、revision、title、slug、excerpt、Markdown/HTML本文、SEO情報、画像、編集クレジット、カテゴリ、タグ、言語・翻訳関係、構造化データ、公開・更新日時があります。任意値はnullの場合があります。成功レスポンスをキャッシュし、一時障害でも秘密情報を露出しないでください。