8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

TouchDesignerAdvent Calendar 2022

Day 15

SlackTD : TouchDesignerからSlackに投稿する

Posted at

この記事はTouchDesigner Advent Calendar 2022の15日目の記事です。

SlackTD

この記事では、TouchDesignerからWebhookを用いてSlackにメッセージを投稿する方法を説明します。
長期展示を行う際にTouchDesignerプログラムの状況を定期的に報告することや、何らかの問題が発生した際にSlackへ通知する等の機能を実現することができます。

本記事で使用しているサンプルファイルはこちらにあります。

監視対象のtoeから監視したい情報をTouchOut.CHOPでSlackTD.toeへ送信し、1) 定期的に文字列として指定されたSlack Channelへの投稿と、2) TouchOut.CHOPからの情報変化がない = 監視対象のtoeが途絶えたと判断し、Slack Channelへの投稿する、の2点の機能がすでに実装されています。

SlackTDの主な使い方

主に監視行いたいtoeに、下記のように変化あるCHOPデータ(ここでは仮にPerform.CHOP)をTouchOut.CHOPへ接続します。NetworkPortは8000とします。
image.png

SlackTD.toeを起動し、WebhooksURL(後述)を入力。Interval(min) = 何分おきに通知をしてほしいかを指定します。

image.png

すると、Slack側でこのように、定期的にTouchOut.CHOPで送信された情報が投稿されます。
image.png

また、仮にTouchOut.CHOPからの送信を止める(監視対象のtoeが落ちた状態を再現)すると。
image.png
このように、@hereのメンション付きで、Slackに投稿されます。例えば「Slack側でメンションがあったときのみ通知する」としておくことで、異常があったときのみ通知を受け取ることができます。

再度、TouchOut.CHOPからの送信を再開すると(監視対象のtoeが復旧した状態を再現)すると。
image.png
のように、復帰の通知が発行されます。

本機能を使うためのSlack側の準備は、後述します。

TouchDesigner から slack Webhookへメッセージを送信する

import requests
import json

webhook_url = str(me.parent().par.Webhookurl.eval())

MESSAGE = ''
for chan in op('slackmes').chans():
	MESSAGE += chan.name + " : " + str (int(chan)) + " , "

data = {'text':MESSAGE}
r = requests.post(webhook_url,data=json.dumps(data),headers={'Content-Type':'application/json'})

実際内部ではpythonスクリプト内で、requests.post経由でwebhook_urlに対してjsonデータを送っているだけになります。なおjson形式を凝ることでSlackが備える様々な機能が使えることがで期待できます。さらに、細く設定するれば特性のユーザーにメンションする。などができるかもしれません。

Slack側の準備

Webhooksを利用してTouchDesignerからSlackへメッセージを送信するには、まずSlack側でIncoming Webhookを作成します。

(2022.12.15現在のSlackWebでの設定方法ですが、細かい仕様は将来的に変わるかもしれません。

image.png
[From Scrach]を選択

image.png
App_Nameを設定。通知を送りたいチャンネルがあるWorkspaceを選択します。

image.png
[Incoming Webhooks]をクリック。

image.png
"Activate Incoming Webhooks"をONにすると、下記の表示が現れます。

image.png
[Add New Wenhook to Workspace]をクリック。

image.png
通知を送るためのチャンネルを選択します。

image.png
そこで得られたURLがWenhook用のURLになります。例:

https://hooks.slack.com/services/XXXXXXXX/YYYYYYY/zzzzzzzzzzzzzzzz

こちらを前述のWebhooksURLに入力して使ってください。

おわりに

本機能を使用することで経時的に変化するメモリ使用量を監視したり、異様にFPSが下がったら通知してこっそり対策をする、自動復旧・起動が成功したかを遠隔で確認する、などのユースケースが考えられます。
そして、「今日も世界のどこかで、こことかこことか、ここの展示会場の片隅で終夜通電して動いているTouchDesignerの事が心配で夜も眠れない」という状態を回避できる可能性があります。

皆様に安らかな夜が訪れますように。🌙

8
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
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?