見出し画像

情報通になりたい~Discordニュースchの設置~

情報通になりたい

ニュースを仕入れたいが追いかけるのは億劫――
 世間の話題やトレンドについて知っておきたいけれど、そのためにネットサーフィンをする時間と手間が惜しい。幅広いジャンルで話題のトピックを自動で集めることができたなら……そう考えてコミュニケーションツール・Discordにニュースの収集専用のチャンネルを作ることになった。

 ちなみに、本記事では「bot」を活用したニュースの収集を紹介しているが、一切プログラミングの知識を必要とせずに利用できるものなので安心して参考にしていただきたい。

なぜDiscordなのか

 Discordというコミュニケーションツールがある。音声とテキストでチャットが行え、複数のチャットルーム(チャンネルと呼ぶ)群をひとつのサーバーとして持つことができ、そのサーバーのメンバーであればほとんど制限なくサーバー内のチャットルームを自由に行き来できる。

 Discordを利用することにした理由は4つある。
 1つに、botの開発と使用ができること。次に用途別に複数のチャンネルを持つことができること。人を集められることと、これらが無料でできるということだ。
 ニュースを自動で収集するのだからbotの活用は必須条件である。さらに人との交流も両立できるというのが大きな強みで、雑談の中でbotでは拾いきれないようなちょっとしたニュースも共有してもらうことができる。

 同じような運用ができるアプリにSlackがあるが、あちらは過去のメッセージを閲覧する際に、無償版では件数に制限がかかるため見送った。

<POINT>
Discordは無料で複数のチャンネルを持ち、botの運用とコミュニケーションの両立ができる。

人々の関心事がわかるSNSとは

 次に考えることは、何をもって「話題」とするのか――有象無象のニュースを追っていては手間が増えるだけである。何らかの方法で「話題」のニュースとトレンドの厳選をしなくてはならない。

 そこで世界中で高いシェア率を誇るSNSであるTwitterを活用することにした。
 Twitterには他のユーザーの投稿を第三者に向けて拡散できる「リツイート」と呼ばれる機能がある。この高い拡散力に目を付けて様々な企業やメディアがTwitterにアカウントを持ち、日々情報を発信している。
 話題やトレンドというものは、多くの人の目に触れている関心事であるので、Twitter上では多くリツイートをされているものが話題やトレンドと呼びうるものであると言える。

<POINT>
Twitterではリツイート数によって関心の度合いを測ることができる。

IFTTTと大衆を利用したbotづくり①

  Twitterでトレンドニュースを集め、Discordで受け取ることが決まったところで、この2つのサービスを繋ぐbotを作る段階に移る。
 そのために様々なサービスを連携させる第三のサービスIFTTTを活用する。
 IFTTTでは2つのサービスを連動させ、自動で行う動作やそのタイミングを設定することができる。

 作成するbotのイメージは以下の内容。
 Twitter上の信頼できるニュースサイトのアカウントが話題のニュース(前段の通り)を投稿したとき、IFTTTを通じてその投稿のURLをDIscordの専用チャンネルに送る。私はDiscordにいて、それらのニュースを受け取る。

 固まったイメージを元に作業を進めていく。

<POINT>
IFTTTを中継してTwitterのツイートのリンクをDIscordに送る。

IFTTTと大衆を利用したbotづくり②

 作業を進めるにあたって次の下準備を行う。
①Discord
 ・Discordアカウントの取得
  ・サーバーと「ニュースチャンネル」の作成
  (適当なチャンネルをニュースチャンネルと呼べばよい)
②Twitter ※アカウントがなくても問題ない
 ・ニュースアカウントの選定
③IFTTT
 ・アカウントの取得

IFTTTと大衆を利用したbotづくり③

 ここからは実際の画面を映しながら作業を紹介していく。

①IFTTTで「Create」から次の画面へ進み「Add」へ。

画像1

②Twitterを選択し「New tweet from search」へ進む。
 ※初回のみ利用の許可を求める画面が表示される。

画像2

画像3


③Twitter の検索コマンドを入力。
 例としてライブドアニュースとNHKのアカウントを検索する。

from:livedoornews OR from:nhk_news min_retweets:3000 -RT

画像9

検索コマンド
※コマンドは半角英数字を使用。
※また、コマンドの前後には半角スペースを入力する。

・from:アカウントID(@除く)
  …指定したアカウントからのツイートを検索する。
・min_retweets:任意の数
  …指定の数以上李スイートされたツイートのみを表示する。
・OR
  …「OR」の前後の検索条件でそれぞれ検索する。
・-
 …「-」に続く条件を除外。
・-RT
 …リツイートを除外する。

 画像で入力した検索条件は「ライブドアニュースかNHKニュースのそれぞれ最低3000リツイート以上された投稿を表示する」という意味になる。
 「OR」を入れることで複数アカウントからのツイートをまとめて検索することができるが、対象のツイートが多すぎるとエラーが起こる可能性があるため注意しなくてはならない。

 この時「min_retweets:任意の数」と「-RT」は忘れずに入れておく。
 Twitterユーザーの広めたいと思う気持ちにニュースツイートの重大性を保証させる意図があるためだからだ。また「-RT」の除外コマンドを入れることで、条件に合うツイート(今回は3000リツイート以上とした)の3001回目以降のリツイートがされる度にbotが起動してしまうことを予防できる。


④次の画面へ進み「Webhooks」を選択する。

画像5

画像6


⑤一旦Discordを開いて、任意のチャンネルを選択。

画像7


⑥「チャンネルの編集」>「連携サービス」>「ウェブフック」へ。
 「ウェブフックのURLをコピー」する。

画像8


⑦IFTTTの画面へ戻り、画像の通り入力・選択をする。

画像9

・URL→⑥でコピーしたURLをペースト
・Method → POST を選択
・Content Type → application/json を選択
・Body → 以下の内容をコピペ

{ "content":"{{LinkToTweet}}" }

⑧内容を保存して終了
動作するのを待つ。


botが機能しないとき

 以下の原因が考えられる。
・IFTTTの設定を終えて間もない(まだ動作を開始していない)
・IFTTTの設定内容に誤りがある
・Twitterの検索内容が複雑すぎる
 大量のツイートを読み込んだり、多くの条件を付けるとうまく動作しない場合がある。
・Twitterの検索内容に誤りがある
 ORや半角スペースの入れ忘れ、検索条件の矛盾などが考えられる。一度Twitter内の検索ボックスに同様の内容を入力してみて、ツイートが表示されるか試してみるとよい。
・対象のアカウントが規制されている。
 何らかの違反があったアカウントは検索結果に表示されなくなるなどの規制をかけられることがある。「Twitter Shadowban Test」で調べることができる。

さいごに

 実は今回紹介した方法にもちょっとした欠点がある。3000RTを集めるまではbotがニュースを持ってこないということ。若干のラグや見逃しの可能性を常にはらんでいる。積極的に様々なことに興味を持ち、たまには「足を使う」ことも必要になるかもしれない。IFTTTではRSSフィードにも対応しているので、どうしても見逃したくない更新にはそちらを使用するといいだろう。
 この記事が皆様の役に立つものであったならば幸いである。

この記事が気に入ったらサポートをしてみませんか?