LoginSignup
4
3

はじめに

サーバー管理無しでBotが作れないかやってみました
結果上手く動かすことができたのでなにか参考になれば幸いです。

用意するもの

  • Googleアカウント
  • ちょっとの根気

Botを作っていく

1.BotにしたいアカウントでAPIキーを発行する

スクリーンショット 2024-01-19 035448.jpg
設定の中のAPIボタンから発行します。
スクリーンショット 2024-01-19 035548.jpg
権限がないと操作できない!ということが起こるので、今回は「すべて有効にする」を選択しました。
チャックマークを押すとキーが発行されるので、しっかりメモして保管します。

2.GASを用意しよう

↑にアクセスして早速空のプロジェクトを作ります。
ここでGoogleアカウントが必要になるのでログインしてくださいね。
スクリーンショット 2024-01-19 041133.jpg

3.テストノートしてみよう

公式のドキュメントに詳しく書かれてますが、難しいのでシンプルなコードを書いてみます。

//TLに投稿する関数
function TLPost() {
  let postURL = "https://投稿したいサーバーURL/api/notes/create"
  var headers = {"Content-Type": "application/json",}
  var data = {
    "method": "post",
    "headers": headers,
    'payload': JSON.stringify({
      "i" : "ここにAPIキー",
      "text": "ここに投稿したい文章"
    })
  }
  let responses = UrlFetchApp.fetch(postURL,data)//リクエスト
}

スクリーンショット 2024-01-19 043002.jpg

書き終わったら実行してみましょう。

警告が出てびっくりすると思いますが自分の書いたプログラムなので安心してください。
ちなみに警告は初回だけで、以降は認証しなくても動いてくれます。

スクリーンショット 2024-01-19 044024.jpg
おめでとう!記念すべき初投稿ができました!!

4.応用する

応用すればランダムな投稿をさせることもできます

//ランダムなノートをする
function RandomNote() {
    let massage = []
    let rand = Math.random() //サイコロを用意する
    rand = Math.floor(rand*3) //3面ダイスにする

    //会話のパターン
    massage[0] = "パターン1"
    massage[1] = "パターン2"
    massage[2] = "パターン3"
  
    let postURL = "https://投稿したいサーバーURL/api/notes/create"
    var headers = {"Content-Type": "application/json",}
    var data = {
        "method": "post",
        "headers": headers,
        'payload': JSON.stringify({
            "i" : "ここにAPIキー",
            "text": massage[rand] //用意したどれかの文章になる!!
        })
    }
    let responses = UrlFetchApp.fetch(postURL,data)//リクエスト
}

5.定期的にノートしてもらう

これは簡単でトリガーというものを用意するだけで完了です。
スクリーンショット 2024-01-19 045540.jpg

スクリーンショット 2024-01-19 045929.jpg

①にランダムノートの関数を選んで、②でどのくらいの間隔でノートするかを選べます。
あまりサーバーに負担をかけないように注意してくださいね。

おしまい

お疲れ様でした!これでランダムにつぶやくBotが作れました!

公式ドキュメントから確認できるのでお好みでカスタマイズしてみてください。
では良きMisskeyライフを~~!!

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3