10
4

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.

VCIAdvent Calendar 2022

Day 7

コメントを受信してみよう

Last updated at Posted at 2022-12-06

コメントを受信してみよう

こんにちはこんばんはおはようございます。

昨年のアドカレでは、箱の作成から時計の表示までやりました。
次は何を作ろうか
そうだね、コメントを受信する何かだね。
ということで公式の焼き直しです。
https://virtualcast.jp/wiki/vci/script/reference/messagecomment

  • コメントを受信するには「message」関数を使用します。
    この関数、コメントの受信や入退出の他、
    VCI同士の制御・変数値のやりとりや同期などに良く利用されます。

 「message」を制する物は同期を制す。知らんけど。
 今回はコメントの受信に重きをおいて説明していきます。

  • サクッとコードを書き書き
function onMessage(sender,name,message)
    msg="sender[name]="..sender["name"].."\n"..
        "sender[type]="..sender["type"].."\n"..
        "sender[commentSource]="..sender["commentSource"].."\n"..
        "name="..name.."\n"..
        "message="..message
    print(msg)
end

vci.message.On('comment', onMessage)

 コメントを受信すると↓のようなのが出てきたと思います。
8.jpg
9.jpg

コードを解説していきましょう。

  • 「vci.message.On('comment', onMessage)」について
    この関数と記述例の意味としては
    システム(アプリケーション)から通知される「comment」というmessageを受信し、
    「onMessage」という関数へ内容を渡すという意味です。
    1.png
     vci.message.Onはソースコードの最後に記入するべきだと昔読んだ気がするのですが・・
     どこにも記載が見当たらないですね(違ったらごめんなさい)。
  • onMessage(sender,name,message)
function onMessage(sender,name,message)

 受信したmessageの内容は、onMessageへ「sender」「name」「message」のが通知されます。
 「sender」は配列(テーブル)型の変数となっており、
 「sender["name"]」「sender["type"]」「sender[“commentSource”]」が格納されています。

 実際に検証しながら確認してみましょう!
 なおショウルームは環境がないので未実施です・・。

  • sender["name"]
    2.png
    この通りになりました。

  ニコ生の184は無、つまり「""」で返されました。
  (画像では文字結合の関係で空白となっています)
  (昔nilじゃなかったっけ・・勘違いかな。)

  • sender["type"]
    3.png
    こちらはこの通り。
    あんまし活用できる機会は少ないでしょう・・。

  • sender[“commentSource”]
    4.png
     コメントソースと名のつくとおり、何処のプラットフォームからのコメントか判別できます。
     コメントビューア等を作成する時に便利でしょう。
     なおVCIはコメント元というかプラットフォームはないため、無「""」が返されました。
      (画像では文字結合の関係で空白となっています)

  • name
    5.png
     全部「comment」。
     こちらも活用は出来なさそう?

  • message
    6.png
    この通り投稿されたコメント、ツイートされた内容が通知されました。

  • 統合して表示してみよう
    後は変数msgに一度情報を書出して見ましょう。
    ごちゃごちゃしていますが、一応軽くコードの説明をすると・・
    7.png
    とにかく文字列や変数、改行コードをどんどん繋げて最後にprintで出力しています。

  • エラーメッセージについて
    受信したmessageに引き渡す関数名または関数名そのものが不一致(無い)場合、
    以下のようなエラーが表示されます。
    10.png
     逆に言うとこのエラーが表示された場合は関数名を間違えている可能性があります。

○最後に

いかがだったしょうか?
もう少しわかりやすく説明したかったのですが、このあたりが限界でした。
コメントを受信することによりコメントビューアや特定のコメントで動作する何かを作成できます。
皆さんもその何かを考えて作ってみてね!

2022120301564638 (2).jpg

10
4
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
10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?