2
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 5 years have passed since last update.

Node-REDのTwitter botでリプライ形式にする

Last updated at Posted at 2017-10-25

Node-REDでtwitterボットを作る際に(正しく?)リプライ形式でツイートする方法のメモです。
単純なTweetやメンションによるメッセージ送付はサンプルがあちこちにあるのですが、受け付けたTweetに対するリプライを返す手順については見当たらなかったので、ここにまとめておきます。

ここでのリプライ形式とは、本家twittetサイトにて、当該ツイートをクリックした際にきちんと連結して表示されることをいいます。

連結したツイート

twittet出力ノードの前にfunctionノードで下記のように、冒頭でのメンションと、msg.paramsを付けることでリプライになります。

twitter-bot-nodes.png
function:リプライ化
msg.payload = "@" + msg.tweet.user.screen_name + " " + msg.payload;
msg.params = {
    in_reply_to_status_id: msg.tweet.id_str
}

ポイントは、in_reply_to_status_id_strではなく、in_reply_to_status_idがパラメータになることと、そこに入れる値は逆にmsg.tweet.idではなくmsg.tweet.id_strであるということです。

なんか、気持ち悪い感じがしますが、msg.tweet.idには正しい値が入らず、丸め込まれて下二桁が0になってしまっているからです。また、ソースを追ったところ、この値はpostされるまで参照されることはなく、リクエストパラメータに渡されるので、本来整数が入るべきところに文字列として入っていても問題なく、エラーにもなりません。

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