CHATGPTのカスタムGPTSへワードプレス上に登録した会員の任意のユーザーしか使用できないように認証の追加をさせていただきました事例をご紹介いたします。

クライアント様のご相談内容

あるオンラインラーニングサイトを運営されているクライアント様のご相談は下記のような内容でした。

GPTSのログイン認証をつけたいのですがお願いできますか?
現在のWp-membersの会員登録
このようにグループ分けしています。
A会員
B会員
C会員
D会員
1つのグループに
1つChatGPTのカスタム版GPTS
のユーザー認証をしたいのです。
お見積もりをお願いいたします。

つまりWp-membersの会員として登録しているユーザー様がGPTSをそれぞれ利用できるように作成されているが、GPTSはリンクを知っていれば、だれでも利用できてしまうため、ワードプレスのWp-membersの会員が登録しているメールアドレスで認証したうえでそれぞれのGPTSを利用できるようにされたいとの事でした。

GPTSにワードプレスの会員と連携したユーザー認証を付けるには?

CHatGPTにはオリジナルな応答を行うGPTSという仕組みが課金バージョンでは利用できます。
このGPTSにワードプレスと連携する認証をつける大まかな流れは下記のようになります。

1 ワードプレス側にGPTSと連携して認証を行う通信APIを作成します
2 GPTSにそのAPIと通信して認証できたかどうかを判別するアクションを作成します

アクションの記載コードは下記のような形になります。

{
  "openapi": "3.1.0",
  "info": {
    "title": "My auth API",
    "description": "This API checks if an email exists in a wordpress.",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://サイトのURL"
    }
  ],
  "paths": {
    "/認証するクエリ等": {
      "get": {
        "summary": "Authenticate a user",
        "description": "Authenticates an existing user",
        "operationId": "オペレーションID",
        "parameters": [
          {
            "name": "送信パラメータ名",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": ""
          }
        ],
        "responses": {
          "200": {
            "description": "Authentication was successful.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok",
                        "denied",
                        "error"
                      ]
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request due to incorrect or missing input parameters."
          },
          "500": {
            "description": "Internal server error when processing the request."
          }
        }
      }
    }
  }
}

このコードでは、CHATGPTが1で実装した認証用のワードプレス側APIの任意の会員種別にアクセスしてユーザーが存在するかを確認するようなコードとなっています。

3 CHATGPTのGPTSの指示(インストラクション)にチャットの開始前に、上記API経由で認証して初めてチャットを開始できる旨記載します。

この GPT は、ユーザーが事前に登録されたメールアドレスで認証しない限り、通常の会話や機能を提供しません。

ルール
・会話開始時に必ずアクション「オペレーションID XXXX」を呼び出し、ユーザーのメールアドレス認証ステータスを確認する。
・アクション「オペレーションID XXXX」 が「ok」と返した場合のみ、通常の質問や処理を開始する。
・未認証の場合は、以下の文面でのみ案内し、それ以外の会話は行わない:
「このサービスをご利用いただくにはメールアドレス認証が必要です。登録済みのメールアドレスで認証してください。」
・認証が完了するまで、技術的情報やコンテンツ提供はしない。

※CHATGPTは指示に従わないことがありますので明確にルールを記載します。

このような流れで、ワードプレスとCHATGPTのGPTSとの連携が可能となりました。
このほかにもGPTSのアクションを利用した様々なワードプレスとGPTSとの連携が可能です。お気軽にご相談ご依頼お送りください。

WordPress ワードプレスとCHATGPTとの連携のご相談ご依頼はWPドクターまでお気軽にお送りください