2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

最近、日本語プログラミング言語「なでしこ」更新履歴を見ていたら、いつの間にやら「DISCORD送信」なる命令が追加されていました。私自身、普段からあまりcnakoやphpnakoは使用していないため、見逃していたのですが、アドベントカレンダーに際して、「DISCORD送信」の命令を使ってみたいと思います。

cnakoのセットアップ

実のところ、ブラウザや公式サイトでサクッと使える主力ランタイム「wnako」には、「DISCORD送信」なる命令は含まれていません。そこでこのあたりのページを参考に、とりあえずWindows版のオールインワンパッケージをダウンロードし、適当な場所に展開します。

「適当な場所」と書きましたが、フォルダパスに空白が入っていると正常に動作しない現象を確認しています。(例:"C:\Users\Osane kasumi\Downloads\nadesiko3win32-3.7.2" など)
可能なら、Cドライブ直下など、開発しやすい箇所に配置した方が良いかと思います。

展開されたフォルダの中にある「start.exe」を起動すると、下の画像のような起動画面になります。Windows版のオールインワンパッケージは、更新がやや遅いので、最新版のなでしこではない可能性があります。そのため、「なでしこ3 最新版をインストール」ボタンを押して、なでしこを最新版にしておきましょう。
最新版になったら「なでしこ3のPC版(Node.jsランタイム)を実行」ボタンを押して、編集画面を起動してください。

image.png

エラーが発生した場合

なお、2025年11月17日時点の最新版では、以下のようなエラーが発生します。

image.png

このようなエラーが発生した場合はTeraPadなど適当なエディタで、setupフォルダ配下の任意のbatファイル(画像はupdate-new-version.batの例)を開いて、改行コードを「CR+LF」にして保存するか、このYahoo知恵袋を参考に改行コードを編集するか、batファイルをメモ帳で開いて、書かれているコマンドを一行ずつコマンドプロンプトで実行してください。

image.png

Discordのセットアップ

Discord側ではWeb-hook用のURLを取得したいと思います。自分が管理者のサーバがあれば、その中のチャンネルを使いまわせばよいかと思いますが、サーバが無ければ自分用のサーバを作成しましょう。

image.png

次に、テキストチャンネル一覧の中から、botに投稿させたいチャンネルを選び、チャンネル名の横にある歯車マークを押します。
image.png

次に連携サービスを押して、「ウェブフックを作成」ボタンを押します。
image.png

botの名前等を編集し、保存します。ついてに、「ウェブフックURLをコピー」しておきましょう。
image.png

早速書いてみる

ここまで来たら、あとはなでしこでプログラムを書くだけです。先ほどセットアップした「なでしこ3のPC版(Node.jsランタイム)」の編集画面から、「→ファイルの新規作成」ボタンを押します。
image.png

開いた画面に、以下のようにコードを打ち込み実行すると、Discordへメッセージが送信されます。(変数《ウェブフックURL》はご自身のものに変更してください)

file1.nako3
# 新規ファイル
《ウェブフックURL》=「https://discord.com/api/webhooks/xxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxx」
《ウェブフックURL》に「なでしこから投稿しています!」をDISCORD送信
「送信しました」と表示

image.png

また、次のように書くと、画像ファイルやPDFファイルを送信することも可能です。

file2.nako3
# 新規ファイル
《ウェブフックURL》=「https://discord.com/api/webhooks/xxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxx」
《ファイル》=「C:/nadesiko3win32-3.7.2/7_shikoku1_kagawa.png」
《ウェブフックURL》に《ファイル》と「【問題】ここはどこ?」をDISCORDファイル送信
「送信しました」と表示
file3.nako3
# 新規ファイル
《ウェブフックURL》=「https://discord.com/api/webhooks/xxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxx」
《ファイル》=「C:/nadesiko3win32-3.7.2/重要書類.pdf」
《ウェブフックURL》に《ファイル》と「ファイルが提出されました。{改行}コメント:確認よろしくお願いします。会議は14時~です」をDISCORDファイル送信
「送信しました」と表示

↓実行結果
image.png

このようにウェブフックで様々なサービスと連携させ、情報をDiscordに集約することが可能になってきます。ただし、ウェブフックは投稿のみ使用できます。Discord上に投稿されたメッセージに反応する等の双方向性が必要なことは、APIを経由する必要があります。詳しくはこちらのページを参照してください。

おわりに

WindowsやUnix系OSでは、任意のコマンドを定期実行できる機能が備わっています。こうした機能と組み合わせて、サーバ上で特定のディレクトリを定期的に監視し、ファイルがアップロードされたら、Discordにも通知する、的な使い方も考えられるかと思います。ぜひ、様々なプログラムを作ってみてください。退屈なことは「なでしこ」にさせましょう!

また、「DISCORD送信」に関する、より詳しいデータは以下のページを確認してください。
GitHub - nadesiko3/src/plugin_node.mts

 

   

以上

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?