データと接続

レコードの保存、アプリとの接続、サイトへのサインイン機能の追加を行います

サイトでは、依頼の保存、進捗の保持、接続済みアプリの情報の表示などが必要になる場合があります。何を保存し、情報をどこから取得し、誰にアクセスを許可するかを ChatGPT に伝えてください。

ストレージとサインイン機能を選ぶ

新しいプロジェクトでは、sites のワークフローで推奨のサイトスターターを使って開始できます。既存のプロジェクトでは、デプロイを依頼する前に、互換性のあるデプロイ成果物を生成できるかどうかを ChatGPT に確認してください。

必要なストレージ機能と ID 機能を ChatGPT が選べるように、サイトで実現したいことを説明します。

サイトの要件 sites に依頼する内容
コンテンツ中心のウェブサイトやランディングページ 利用体験上必要な場合を除き、アプリケーションの状態を永続化しないサイト
レコード、ユーザーの進捗、ゲームのスコアの保存 構造化データを永続的に保存するリレーショナルデータベース D1
画像、ドキュメント、音声、動画、その他のアップロード ファイル用のオブジェクトストレージ R2
検索可能なメタデータを持つアップロードファイル メタデータ用の D1 とファイルの内容用の R2
現在のワークスペースユーザーの ID が必要な社内サイト ワークスペースで認証されたユーザー ID
一般公開のサインインや外部 ID プロバイダー 認証が有効なサイト

テーマの選択や閉じたバナーなど、一時的な表示状態のために永続ストレージを依頼する必要はありません。ホストされたサイトが保持していると利用者が期待するプロダクトデータについては、永続ストレージを依頼してください。

ChatGPT でサインインを追加する

公開サイトは誰でも閲覧できる状態を維持しながら、進捗の保存、パーソナライズされた表示、特定の個人に属するレコードなど、ユーザー ID を使用する機能向けに、任意の「ChatGPT でサインイン」を提供できます。ワークスペースに限定されたサイトでは、共有設定の適用にすでに ChatGPT の ID が使用されています。

サインイン機能を追加するよう sites に依頼します。

プロンプト:

Add Sign in with ChatGPT to this public site. Keep the site available to signed-out visitors. Show a Sign in with ChatGPT action when someone is signed out. After they sign in, greet them with their full name when available, or their email address otherwise. Add a Sign out action, and keep authorization decisions in server-side code.
仕組み

Sites は、プラットフォームが提供するパスを通じてサインインとサインアウトのフローを処理し、その後、閲覧者をサイトに戻します。

<a href="/signin-with-chatgpt">Sign in with ChatGPT</a>
<a href="/signout-with-chatgpt">Sign out</a>

閲覧者がサインインすると、sites は次のリクエストヘッダーを通じて、その ID をサーバーに転送します。

  • oai-authenticated-user-email には、認証済みのメールアドレスが含まれます。
  • oai-authenticated-user-full-name には、空でないプロフィール名が含まれる場合があります。省略可能な値として扱い、存在しない場合はメールアドレスを使用してください。

認可の判断はサーバー側のコードで行い、名前を分割して格納するヘッダーには依存しないでください。

プラグインでユーザーデータをサイトに取り込む

sites でプラグインを使用すると、各閲覧者自身の接続済みアプリからデータを読み込むサイトを構築できます。たとえば、課題ダッシュボードでは、自分には自分に割り当てられた課題を、チームメンバーにはその人に割り当てられた課題を表示できます。閲覧者はそれぞれ ChatGPT でサインインし、使用する接続済みアカウントと許可するアクセスを選択します。

接続先のデータを使うサイトを構築する

  1. ChatGPT Work または Codex にサイトの構築を依頼します。プラグインコネクターの名前と実行したい内容を伝えるか、利用可能なプラグインを尋ねてください。
  2. 実際のデータを使ってプレビューを試します。エージェントは、サイトの構築とプレビュー中に利用可能な接続を使用します。
  3. ワークスペース向けにサイトを公開し、チームメンバーにリンクを共有するようエージェントに依頼します。

例:

プロンプト:

Build a site using my connected issue tracker that shows issues assigned to me, grouped by priority. Add project filters, links to the original issues, and a Refresh button.

元のドキュメントにリンクするドキュメント検索ツールや、チケットとメッセージをまとめたプロジェクト概要を作成することもできます。

データの読み込み

ページの読み込み時に、sites は閲覧者の接続と権限を使って接続先のデータを読み取ります。キャッシュと再読み込みは Sites が管理します。必要に応じて、手動で更新する操作を追加するよう ChatGPT Work または Codex に依頼してください。

デフォルトでは、コネクターがカーソルを返すと、sites はさらに読み込む 操作を使って次のページを取得します。

技術リファレンス: プラグインの検出

Sites は getContext() を使用してプラグインのアクションを検索します。キャッシュされたツール名、説明、スキーマを返し、検出情報の更新は行いません。

サポートされている接続済みアプリのアクションと提供状況については、ヘルプセンターの ChatGPT Sites の作成と使用をご覧ください。

閲覧者が接続を選べるようにする

接続を使用する機能を利用するには、閲覧者は ChatGPT でサインインし、サイトが要求するアプリへのアクセスを確認して、接続済みアカウントと許可するアクセスを選択し、サイトに戻ります。サイトを共有しても、自分の接続済みアカウントへのアクセスが付与されることはありません。サイトは、各閲覧者が許可したアプリからデータを受け取ります。

閲覧者はアプリへのアクセスを許可せずに続行できますが、アクセスが必要な機能は動作しません。アプリを利用できない場合は、正しいワークスペースで接続され、ワークスペースの設定で許可されているかを確認してください。