2023年6月 ChatGPTとmakeを使って、Twitter投稿を自動運用する。

# 注意
2023年5月現時点では無料で問題なく動作していますが、
本手順は、Twitter,make、ChatGPTの仕様変更により、手順が変わる可能性があります。
追記
makeではTwitterが有料プランに入っている人には常時使えるらしく、無料だと制限があるそうです。
https://www.make.com/en/help/general/pricing-parameters

Twitter APIの料金

https://developer.twitter.com/en/docs/twitter-api/getting-started/about-twitter-api#v2-access-leve

実際に自分が参照した参考サイトのやり方ではうまくいかなかった事もあり、自分なりに試してみたところなどもあります。


# 必要なもの
- Makeアカウント
    - https://www.make.com/en/white-label
- Twitter開発者アカウントの設定
    - https://developer.twitter.com/ja
- Open AIのアカウントとAPIキー


# 手順
まずは、Makeにアクセスします。

https://www.make.com/en/login

その後、シナリオを作成する。初めての方は、真ん中にある大きな＋をクリックする。
![スクリーンショット 2023-05-31 0.45.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/6053eeab-3435-8318-d106-4e5106324481.png)

右側からChatGPTを検索して選択した後、Create a Complectionを選ぶ。
![スクリーンショット 2023-05-31 0.46.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/8564ca74-e703-bb9c-0192-d4fe2f9ccb78.png)

![スクリーンショット 2023-05-31 0.48.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/e7130e09-a263-4c51-d19b-7c56f796f32f.png)

その後、connectionの中のAddを選択し、項目を埋める
- ConnectionName
    - 自分の好きな名前。自分は`Ar1se_chat`にしてます
- APIKey
    - OpenAIのAPIキーです。リンク先からすぐ飛んで確認できます。
- OrganizationID
    - こちらもOpenAIから取得します。リンク先からすぐ飛べます。

![スクリーンショット 2023-05-31 0.50.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/c389eedb-876c-d95d-eb0f-cc4d630e4282.png)

コピー＆ペーストが済んだら`Save`します。

- Select Method
    - Prompt
- Model
    - text-davinci-003
- Prompt
    - ここは、どんな感じでツイートさせるかになります。
    - 自分はいかのような感じで書いてます
![スクリーンショット 2023-05-31 0.55.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/3ba50862-eebc-a32b-8d2c-cf80a6c7adcb.png)

`Show advanced settings`をONにし、以下を埋めます。
- Max Tokens
    - 最大の使用トークン量
    - 自分はひよって1000にしてます。もしかしたらもう少し多くていいかも。
- Temperature
    - デフォルト：1
- Top p
    - デフォルト：1
- N
    - デフォルト：1
- Echo
    - デフォルト：Empty

この状態でSaveして、右クリックして`Run this module only`を押す。
![スクリーンショット 2023-05-31 0.59.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/b3c9467e-c39d-f2e7-566b-62e7e6b4f78a.png)

その後おそらく、右上に`1`と表示されるはずなので、それをクリック。
OUTPUTの中を開くと、おそらく生成された文字が出てくるはず。


# Twitterとの連携
手順

https://www.make.com/en/help/apps/marketing/twitter-legacy

正直、ここが一番のミソ。
まずは、Twitterの開発者ポータルに入る。
その後、APIキーとシークレットを取得する。

![スクリーンショット 2023-06-02 22.21.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/8566851e-d14c-2d01-3f69-1efe58d27d1b.png)

その後、プロジェクト内のSettingから、`User authentication settings`の`Edit`
を選択する。
![スクリーンショット 2023-06-02 22.24.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/2f7ba4f3-a8a6-9ee9-4404-dca0966c96c3.png)

そして、以下のように設定する。
- Read and write and Direct message
    - チェックをいれる
- Type of App
    - Web App, Automated App or Botにチェックをいれる
- Callback URI / Redirect URL 
    - https://www.integromat.com/oauth/cb/twitter
- Website URL
    - https://www.make.com/en/integrations/twitter

ここを設定したら、`Save`する。
![スクリーンショット 2023-06-02 22.26.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/f654df2e-9ef7-3d4a-3a71-5ffc4f7b09ef.png)
![スクリーンショット 2023-06-02 22.29.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/401b7188-e426-176b-4ffb-44c2217f70c4.png)

また、ClientIDと、ClientSecretを保存する。
![スクリーンショット 2023-06-02 22.31.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/86b85991-f182-7b29-ed70-26dd530529dd.png)

Makeに戻り、
1. twitter
1. twitter(legacy)
1. Create a Tweet(v2)
を選択する。

![スクリーンショット 2023-06-02 22.34.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/006d6b0c-14b9-3de2-3993-d40f3d21cc32.png)

![スクリーンショット 2023-06-02 22.33.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/12a585e5-54f5-4a28-80ed-06e0d0405eef.png)

その後、Twitterをクリックし、
- Connection name
    - 任意の名前
- API Key
    - TwitterのAPIキー
- API Key Secret
    - APIキーと同時に取得したシークレット
をいれる。
![スクリーンショット 2023-06-02 22.35.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/3aaf637f-fd8b-101e-d5e6-bd8d50f382c5.png)

すると、別タブが開くので、`Authorize app`を選択し、認証する。
![スクリーンショット 2023-06-02 22.41.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/7e8fb44a-f258-b857-1ad0-ed67a0596f77.png)
スクショが撮れてないが、この先にClientIDとClientSecretを求められたハズ。

認証が終わると以下のように表示され、タブが消える。
![スクリーンショット 2023-06-02 22.43.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/662b28e8-01d2-b9be-111f-6cc5765be955.png)

最後に`Text Content`を編集する。
`{{1.choices[].text}}`を入れる事で、ChatGPTから取得した文章をツイートする事が可能。
追加でタグを設定してあげたりするときは、`Text Content`の中に書き込む必要がある。
![スクリーンショット 2023-06-02 22.44.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/b1c7bdea-4fc6-2ec4-ea6a-7012e8c4f3ac.png)

この状態でmakeを実行すると、ChatGPTから出た文章が、ツイートされるようになる。
`最初はじっこうできるが、著者は無料でできる範囲を超えてしまい、現在は実行できない。makeを有料プランにしたら実行可能と思われる。`
![スクリーンショット 2023-06-02 22.46.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/82d09bea-14f7-4176-5a50-6f6e1399e2bb.png)

Twitterの方を見てみると、ツイートが投稿されている事を確認できる。

![スクリーンショット 2023-06-02 22.48.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1288524/4661cdcc-5588-8de5-7357-169953e0013b.png)


以上


# 所感

- twitterAPIの利用準備が面倒
- やっぱり無料で自動投稿できるようにしたい。
    - 何かいい方法はないか。。。
- makeおよびTwitterは、ライセンス体制が変わってうまく運用できなくなる恐れがある。


# 参考サイト

https://ameblo.jp/coward-sora-amegahuru-ne/entry-12794089098.html

https://www.youtube.com/watch?v=G08GvPqk3Ys


https://www.make.com/en/help/apps/marketing/twitter-legacy