自社の記事・ツイートを自動検知し、炎上を防げるか？

以前、自社に関する誤ったニュースが、とある経済誌のオンラインサイトに掲載されて
いたことを取引先からの連絡を受けて、訂正してもらったという事案が発生。
それを受け、ネット上での炎上や誹謗中傷を未然に防ぐためにも、自社に関するニュース
やSNS上のツイートを定期的に抽出して、ネガティブな情報・誤った内容を検知すること
はできないか、という問い合わせを受けました。

聞いた当時は、社外のサービスを探すことしか考えていませんでしたが、最近使い始めた
ノーコード開発ツールの「Make」が使えるのではないか。

そこで今回は、先日から使い始めたノーコード開発ツールの「Make」を使い、Googleの
検索機能で自社に関するデータを抽出し、スプレッドシートに出力するツールを、初心者
ながら作ってみようと思います。

## １．今回使用するツール
・Make
・Google スプレッドシート
・serpstack（Google検索ができるAPIサービス）

## ２．イメージ
　Googleのスプレッドシートにあらかじめ検索キーワードをセットし、APIでGoogle検索
　した結果を、別シートに書き出す、というものです。
![①イメージ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802665/6609a441-ec19-8ebe-3435-797d6d50e365.png)
## ３．想定
　Googleで２４時間以内に更新された情報を検索して出力すると、このように検索結果が
　表示されますが、これを自社に関するキーワードで検索して、スプレッドシートに出力
　できればと考えております。
![想定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802665/b3042f66-edd1-c460-d716-ac8487303bac.png)


## ４．Makeで作成した「シナリオ」
　上述のイメージを再現するためのシナリオがこちら↓
![②シナリオ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802665/c86ed3da-b63b-3752-f33f-3a2bbb175aea.png)
　Makeでは、動作の１つ１つを示す丸いマーク「モジュール」をつないだ一連の流れを
　「シナリオ」といいます。
　モジュールの機能面とAPIサービスが理解できるようになれば、もっと複雑な動作も
　可能になるようですが、今回は６つのモジュールをつなぐシンプルなものになります。

#### ①．「Google Sheets」で、スプレッドシートにキーワードをセットする
　スタートはGoogleのスプレッドシートにキーワードをセットするところから。
　シートは「キーワード」を入力するものと、検索結果を出力するものの２つです。
![③スプレッドシートに検索キーワードを設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802665/4ae0c8eb-630c-c309-6853-38aa4447cd21.png)

#### ②．「Array aggregator」で、キーワードを認識させる
　次に、スプレッドシートのキーワードを検索テーブルにセットするところです。
　さきほどのシートから、キーワードと日付（アップロード日）を検索に使いたいと
　思います。
![④スプレッドシート上のキーワードを検索に.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802665/063f71f5-4cab-3347-bd88-0c3da2edb8a0.png)

#### ③．「Repeater」で、繰り返す回数を3回に
　Repeaterがどのような動きをするのかを知りたくて、追加してみました。
![⑤Repeater.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802665/707e1ee2-aaa8-ce5b-f8aa-d58935135386.png)

#### ④．APIサービス「serpstack」のアカウント手続き→→→「HTTP」で定義
　Google自体にもAPIはありますが、手続きが少し煩雑に思えたため断念。
　代わりに、Google検索結果を引き出せるAPIサービス「serpstack」のアカウント
　を作り、利用してみることにしました。
![⑥APIサイトへ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802665/8b06958d-f282-36b3-2d25-2e85535516e5.png)
　こちらのサービスは、一定回数までは無償で利用できるようです。

#### ⑤．「JSON」で、JSONのサンプルを読み込み
　Makeでは、JSONのサンプルファイルを読み込んで自動的に解析してくれるのだ
　そうで、さきほどの「serpstack」よりサンプル部分をコピーして生成します。
![⑦JSONファイル.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802665/89b748a8-9382-47ff-e72e-5f145822d37b.png)

#### ⑥．「Google Sheets」で、検索結果の出力方法を定義
　最後にもう一度スプレッドシートで、出力方法を定義します。
![出力.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802665/093e30a6-7f7f-c13a-6aae-c13e84a07ff5.png)

## ５．実行・結果
![⑨結果.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2802665/b8d9161a-d106-301d-3cac-6079d1d5247d.png)

　「Repeater」で３回繰り返す設定をしたので３行出力されただけという結果に。
　しかも検索結果が出力されたのではなく、Googleの検索条件がそのまま出力
　されてしまいました。

　図の赤枠をクリックすると、Googleで「日本」を検索しているページに飛びま
　すが、それなら直接Googleで検索したほうが早いんじゃないかという結果に。

## ６．今後の取組
　Makeの機能も、APIサービスでできることも、まだまだよく咀嚼できていない
　ので、完成するまでに相当時間がかかりそうです。
　特に上述４のAPIに関しては、こちらが想定していたサービスと実際にできる
　サービスに違いがあるようです。また６のシート出力の定義も不十分なのかな
　と思います。

　さらに、自社に関する「ネガティブな」情報をどのようにして検知するか、
　については、また別の技術が必要なように思います。

　完成に至っていないので、さらに調べてみて、また成果を載せたいと思います。