GPTsにスプシ連携させてスプシの内容を実行

### 内容
GPTsのactionsを使って外部ツールと連携させることが出来る。この機能を使ってスプシを連携する
テーマを入力するとタイトル案と目次構成、記事作成、アイキャッチ作成までを行うGPTsを作成

### 設定方法

1. ChatGPTのTOP画面のexploreをクリック
2. GPT Storeの+Create a GPTをクリック
![スクリーンショット 2023-12-24 15.59.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/b8d468d0-f0c6-da87-8761-4cf8c5211438.png)

3. 設定画面が表示される
![スクリーンショット 2023-12-24 16.00.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/b56ffda4-a231-f5fc-503f-7af7f68ded83.png)
4.Configureをクリックするとこの画面が表示される
 ![スクリーンショット 2023-12-24 16.07.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/4c6d2901-3e9c-076e-7041-2a524997aeec.png)
![スクリーンショット 2023-12-24 16.09.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/a4639964-04cc-28db-ed3e-c50d30b838d2.png)
5. actionを使ってAPIを使って外部と連携させる事で外部で操作した内容をMyGPTsに持ってきて情報のやり取りが可能になる。

6. 上記の手順でMyGPTsを新規に作成して以下の内容をそれぞれに入力する

![スクリーンショット 2023-12-24 16.31.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/5f393a7f-fade-aed8-8385-cab02d5a8b7d.png)
![スクリーンショット 2023-12-24 16.31.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/a81ea9f4-c9d8-59b8-6a99-58e925532fef.png)

7.APIを受け取るためのコードをSchemaに入力する

```
{
  "openapi": "3.1.0",
  "info": {
    "title": "Get name data",
    "description": "Get lastname and firstname by id",
    "version": "v1.0.0"
  },
  "servers": [
    {
      "url": "https://script.google.com"
    }
  ],
  "paths": {
    "/macros/s/AKfycby_GCnFVdiumK2WixXExruPSu4sUFptgZy7clJgXODx1Z1psAfng7w0jmaEcTLIGGPt/exec": {
      "get": {
        "description": "Get lastname and firstname by id",
        "operationId": "GetNameByid",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "ID No.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "deprecated": false
      }
    }
  },
  "components": {
    "schemas": {
      "NameResponse": {
        "type": "object",
        "properties": {
          "lastname": {
            "type": "string"
          },
          "firstname": {
            "type": "string"
          }
        }
      }
    }
  }
}
```
8.スプシを用意して以下の内容を入力する
![スクリーンショット 2023-12-24 16.37.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/86240ed7-16c4-e827-1a7e-f807fc351e10.png)

9.App scriptをクリックして以下の内容を入力
17行目を書き換える
![スクリーンショット 2023-12-24 16.38.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/2fcc0aec-c46c-b015-06ec-3f757e2a664b.png)

```
function doGet(e) {
  // リクエストからパラメータを取得
  console.log("start GPTs Custom Actions API test");
  console.log("e: " + JSON.stringify(e));
  var searchQuery = e.parameter.id;
  console.log("e.parameter.id: " + e.parameter.id);

  // 4桁の数字かどうかをチェック
  if (!searchQuery || !/^\d{4}$/.test(searchQuery)) {
    console.log("bad format: " + searchQuery);
    return ContentService.createTextOutput(
      JSON.stringify({ "error": "Invalid request. Please provide a 4-digit number." })
    ).setMimeType(ContentService.MimeType.JSON);
  }

  // スプレッドシートの準備
  var sheet = SpreadsheetApp.openById('xxxxxx-xxxxxxxxxxxxxxxxxxxx').getSheetByName('シート1');
  var data = sheet.getDataRange().getValues();
  console.log("format OK");

  // スプレッドシートを検索
  for (var i = 1; i < data.length; i++) {  // 2行目から開始
    if (data[i][0].toString() === searchQuery) {
      console.log("hit: " + i);
      console.log("last: " + data[i][1]);
      console.log("first: " + data[i][2]);
      // 見つかった場合、JSONとして返す
      return ContentService.createTextOutput(
        JSON.stringify({ "lastname": data[i][1], "firstname": data[i][2] })
      ).setMimeType(ContentService.MimeType.JSON);
    }
  }
  console.log("not found");
  // 一致するデータが見つからない場合
  return ContentService.createTextOutput(
    JSON.stringify({ "error": "No data found for the provided number." })
  ).setMimeType(ContentService.MimeType.JSON);
}
```
10.以下のopenById以降のx部分を書き換える
11.スプシのURLのd/以降の部分をコピペして入力
```
  // スプレッドシートの準備
  var sheet = SpreadsheetApp.openById('xxxxxx-xxxxxxxxxxxxxxxxxxxx').getSheetByName('シート1');
  var data = sheet.getDataRange().getValues();
```
12.ここまでできたら新しいデプロイをクリック
![スクリーンショット 2023-12-24 16.48.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/37a8cbdd-808b-ecb4-a583-15ea5ba0a122.png)

13.歯車ボタンを押して以下のように設定してデプロイをクリック。認証画面が出てきたら認証を進める

![スクリーンショット 2023-12-24 16.52.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/9fefa5f7-7443-7514-6f2f-9c8588c67ba0.png)

14.警告文が出たら、以下のリンクをクリックして進める
![スクリーンショット 2023-12-24 16.58.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/eb26b296-6cf5-675d-f43b-010e67ed72b1.png)

15.Allowをクリック
![スクリーンショット 2023-12-24 17.00.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/b9ed2f04-8783-78ed-f2f0-8e008c27da13.png)

16.ウェブアプリのURLをコピーする
![スクリーンショット 2023-12-24 17.02.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/48094fe9-46c3-1a10-7c28-91b5452b1bcb.png)

17.GPTsに戻りschema内のpathsを探して以下のようにURLをペーストする。

![スクリーンショット 2023-12-24 17.05.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/9f7de27b-5ad7-53d4-10f8-748b3156bad2.png)

18./macrosより前の部分を削除。これでshemaの設定完了
![スクリーンショット 2023-12-24 17.07.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/eed68c55-8ed5-8548-be96-7095e46f2859.png)


19.Description、Instructionsなどそれぞれ以下のように入力。InstructionsにはアップスクリプトのURLを入力
![スクリーンショット 2023-12-24 17.39.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/81366eab-5087-7b10-3672-0db74e795752.png)

![スクリーンショット 2023-12-24 17.13.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/cc8e72f0-f055-afa4-2bd8-0d44388c381b.png)

20.余計なものが動かないようにDALLEのみにして他のチェックを外す。ここはスプシの内容によって変更する![スクリーンショット 2023-12-24 17.16.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/dbc834cc-7d62-0d2a-924d-dc1fd7176707.png)

21.MyGPTで2001番を実行してと入力
![スクリーンショット 2023-12-24 17.20.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/e0e753b9-0a58-9613-76ac-950ab88e42d7.png)

22.スプシ内容が実行された
![スクリーンショット 2023-12-24 17.22.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/c39a2b74-491a-5026-3f70-d50854e4f836.png)

23.「新時代のライフスタイル：未来志向のアプローチ」というテーマの記事に対してこんなアイキャッチを作ってくれました

![スクリーンショット 2023-12-24 17.27.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/256115/9f7fa70f-2ec0-189a-d335-1afdc9e631d7.png)