RTAや配信のあれこれ

2021/05/04

10分でNightbotのおみくじコマンドを作る


Pastebinという無料で利用できるサービスを利用して、ランダムにテキストを返すNightbotコマンドを作ります

本記事では例としておみくじを引けるコマンドを作りますが、じゃんけんコマンドや釣りコマンド、事前に登録した名言をランダムで返すコマンドなども同様の方法で作成可能です


用意するもの

  • 配信サイト(TwitchやYouTubeなど)と連携したNightbot

    まだ導入していない場合は「Nightbot 導入」などで検索して出てくるサイトを参考にNightbotと配信サイトと連携させる

作り方

Pastebinのアカウントを作る

(既にアカウントがある場合は次の手順へ)

https://pastebin.com/にアクセスしてアカウントを作成後、入力したメールアドレスに認証メールが届くのでそれを開いてURLをクリック

コマンドで表示するテキストのリストを作る

Pastebin上部の「+paste」をクリックして新しいペーストを作成

下記のルールに従って、コマンドが入力されたときに返すテキストのリストを作る

  • リスト全体を[](半角の角かっこ)で囲む
  • それぞれのテキストを下記いずれかの記号で囲む
    ""(半角ダブルクォーテーション)
    ''(半角シングルクォーテーション)
    ``(半角バッククオーテーション)
  • テキスト間は,(半角カンマ)で区切る

例えばこんな感じ

リストを見やすくするために改行してもOK


ページ下部の設定を下記の通り変更して「Create New Paste」をクリック

  • Syntax Highlighting: None
  • Paste Expiration: Never
    ペーストの有効期間、Neverは期限なし
  • Paste Exposure: Public または Unlisted
    ペーストの公開範囲、Publicは誰でもアクセス可能(一般公開)、UnlistedはURLを知っていればアクセスできる(限定公開)
    PrivateにするとNightbotがペーストにアクセスできずエラーが出てしまうので注意
  • あとの3項目は何でもOK、Paste Name / Titleはこの後設定するNightbotのコマンド名と同じ名前にしておくと分かりやすい


作成したペーストを編集する場合は「edit」をクリック
※編集完了後ページ下の「Save Paste」で変更を保存するのを忘れずに!

Nightbotにコマンドを登録する

リストを作成したペーストの画面で「raw」をクリックし、表示されたページのURL(https://pastebin.com/raw/で始まるやつ)をコピーする


Nightbotのサイトに移動しログイン、Commands > Customページの「+Add Command」をクリック


Command欄に登録したいコマンド名を入力(この文字列がチャットに入力されたときにNightbotが自動返答する)、Message欄に以下のコードをコピペ →【PASTEBINURL】の部分を先程コピーしたURLに書き換える

$(eval a=$(urlfetch json 【PASTEBINURL】);a[Math.floor(Math.random()*a.length)])


画像のようにできたら「Submit」をクリックしてコマンドを登録

Message欄に入力したコードの前後に文字を入れることもできる

コマンドの動作を確認する

配信サイトで自身のページを開き、先程Nightbotに登録したコマンドをチャットに送信
Nightbotから返答があればOK(画像はTwitchの画面)

コピペしたコードの前後に文字を入力している場合は以下のような返答になる


うまく動作しないときのFAQ

Q. コマンドを入力しても何も表示されない

A. Nightbotに登録したコマンド名とチャットに入力したコマンドが一致しているか確認

Q. コマンドを入力したら「Unexpected identifier」と表示される

A. 以下の項目を確認

Pastebin側
  • [で始まり]で終わっているか
  • 各テキストは半角クオーテーション記号で囲まれているか
  • テキスト間は,(半角カンマ)で区切られているか
  • クオーテーション記号で囲われている部分以外に全角スペースが入力されていない
  • 設定のPaste Exposureが「Private」になっていない
Nightbot側
  • Message欄の「json」とURLの間に半角スペースはあるか

Q. 「Code generation from strings disallowed for this context」と表示される

A. NightbotコマンドのMessage欄に貼り付けたURLが「https://pastebin.com/raw/~」になっているか確認

Q. その他よくわからない文字列が表示される

A. Message欄にコピペしたコードの$()の中身に余分な文字・足りない文字がないか確認
  よくわからなかったらもう一度コピペし直す

参考にしたサイト

Some fun custom Nightbot commands, for beginners :) | Reddit

0 comments:

コメントを投稿