ASTERIA Warpを使って簡単に自動化！SNSでの投稿自動化！

# はじめに
このカレンダーは[この処理、簡単に自動化できたらイイな！をASTERIA Warpで試してみよう！ by アステリア Advent Calendar 2022](https://qiita.com/advent-calendar/2022/warp)です！

筆者は普段、自動化をするのがとても好きで、日常的にもっと楽できる方法ないかなを考えるようにしています。
今回、Advent Calendarに、自動化のテーマで面白そうなものがあったので、参加しました！

この記事では、以下について説明します。

* ASTERIA Warpとは？
* ASTERIA Warpを使ったSNSの自動投稿

## ASTERIA Warpとは
各種データとSNSやグループウェアなどのサービスを繋いで、処理の自動化を行うことができる**ノーコードツール**です。

ノーコードツールの利点としては、下記が挙げられます。

* **必要な専門知識の量が少ない**
    * 非エンジニア以外も触れるので、社内調整工数の削減が期待できる
    * 不足しているエンジニア人員を補える
* **開発コストの削減**
    * 実装する時間が通常よりも短く済む
        * 開発費用の抑制にもつながる。

上記メリットが得られる一方で、ノーコードツールは自由度や拡張性が低く、融通を効かせづらい部分もあります。
どこまでかゆいところに手が届くか？というところを意識しながら、今回はASTERIA Warpを使用していきたいと思います。

### 連携可能な接続先
処理の自動化を目的としたノーコードツールを選ぶ上で、特に重要なのが、
[連携先](https://www.asteria.com/jp/warp/feature/option/)の数だと思っています。

ASTERIA Warpは**100種類以上**もあるので、十分な量の連携先があると思います。
[^1]:https://www.asteria.com/jp/warp/feature/option/

特に、個人的には Google Analytics, SpreadSheet, Twitter・LINEなどのSNS類, Slackとの接続先など
メインどころがしっかり抑えられているのが嬉しいです。

![スクリーンショット 2022-12-25 14.39.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/4cbd514c-a01e-e5fd-a513-bc239a6f05c7.png)
(※ [ASTERIA Warp公式HP](https://www.asteria.com/jp/warp/) より引用)



### 料金
4種類の[ラインナップ](https://www.asteria.com/jp/warp/lineup/)があり、最低月額3万円~となっています。
実務で使うことを想定すると、
データベース連携ができるASTERIA Warp Core + (月額6万円~)のプラン
またはスケジュール起動だけでなく、外部サービスの条件をきっかけとしたトリガー起動が可能なASTERIA Warp Standardプラン(要問い合わせ)
にする可能性が高くなりそうです。


## 利用方法

下記リンクより、体験版として5日間利用できるので、試してみます。

https://www.asteria.com/jp/contact/asteria/taiken_cloud/

使い方を記した、書籍もプレゼントしてくれ、さらにチャットでの相談も受け付けるとのことで、サポートが充実してますね！

上記リンクから、申し込みを行うと、実行環境の準備をしてくれるので、環境準備の完了まで待ちましょう！

準備が完了したら、以下のように、自動化したいものの流れをイメージして、ツールを使用して実装をしましょう！！
![スクリーンショット 2022-12-25 14.27.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/ec470514-afd7-ec8d-9616-3b43a2c82f71.png)
(※ [ASTERIA Warp公式HP](https://www.asteria.com/jp/warp/feature/) より引用)

### 環境構築完了後
メールで環境のお知らせが届くので、リモートデスクトップで接続します。
Macをお使いの方は AppleStoreから Microsoft Remote Desktopをインストールしましょう。

![スクリーンショット 2022-12-26 21.35.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/dd856e90-a708-30cf-3e37-f3a4a0dbf7ce.png)

インストール後、記載された、IPアドレス,Username,Passwordを入れると
初回のパスワード変更が必要になるので、パスワード変更を行ったら、準備完了です。

デスクトップにチュートリアルガイドがあるので、細かい操作方法はそちらを参照してください。

フローデザイナーというのを開いて、開発スタートです。

まずチュートリアルを一通り試してから触り始めるのがおすすめです。
30分くらいで完了できました！ (DBと繋いで表示するまでの一連の流れができる)

![スクリーンショット 2022-12-26 22.33.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/f2992703-a7d8-12c9-889b-88564a541497.png)


## 実装
さて、いよいよ実装していきます。
今回、下記を試してみたいと思います。

* 一つの文章を書くだけで、複数サービスへの自動投稿
    * SNS運用をするときに、別々のサイトにログインして投稿し直すのは大変。
    * 同時に投稿が行えるようにする。

#### 仕様
WordPressなどのCMSを既に利用している前提で進めていきます。

* WordPressに内容が投稿されたタイミングで、トリガー実行
* LINEとSlackにそれぞれ投稿する
    * (TwitterとFacebookで試したかったのですが、体験版には探しても見つからず利用できませんでした。見落としていたらごめんなさい。)

作成する上で事前に準備しておく必要があるものがあります。やり方はこちらでは説明しませんのでご了承ください。
* LINEのDeveloperアカウントで発行したToken [公式でのやり方](https://developers.line.biz/ja/docs/messaging-api/getting-started/)
* slackのカスタムappで発行されたToken [公式でのやり方](https://slack.com/intl/ja-jp/help/articles/215770388-API-%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3%E3%81%AE%E7%94%9F%E6%88%90%E3%81%A8%E5%86%8D%E7%94%9F%E6%88%90)


#### 実装
##### 事前準備
* ASTERIA WarpにはURLによるトリガー起動があるので、これを使って、wordpressで投稿されたら他のところにも投稿されるというのを実現したいと思います。
    * ただ、今回は試験版で外部に公開するのが難しいので、理論上はこれでいけるはずというのを紹介します。

まず、プラグインの[wp-webhooks](https://ja.wordpress.org/plugins/wp-webhooks/)を使うので、インストールしましょう。

インストールが完了したらプラグインの設定からWebhook URLを登録します。

Send Data > Post updated > Add webhook URL で登録画面にいくはずです。

![スクリーンショット 2022-12-27 0.40.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/627aac54-23af-4a7b-6e5b-c625ce17cbd3.png)

登録が完了したら、HTTPフローをトリガーに実行します。
ただ、今回は試せないので、実際には下記記事を参考に、実装してみると良いと思います。
[ASTERIA WarpがLINEBotに！？～LINE公式アカウントにつないでみた～](https://www.asteria.com/jp/warp/blog/20181205/35386.html)

今回は受信後の部分について実際に試していきます！

##### フローを組む

* 最終的に完成したフローはこちらです。
![スクリーンショット 2022-12-27 0.48.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/8942a9c0-af07-273e-fd0c-adada8dd7e66.png)

実行後、データベースからデータを受け取り、そのデータをそのままLINEとSlackBotに通知します。

LINEとSlackbotは上のパレットにあるソーシャルの箇所から利用できます。
こちらをドラックアンドドロップするだけで、ソース追加できるので、楽ですね。

![スクリーンショット 2022-12-27 0.50.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/4b9aa825-d6c7-331f-75f6-10ba8eb5345b.png)

ドラックアンドドロップした後、ダブルクリックで選択すると、各プロパティの編集ができるので、
利用するためのトークンをLINE, Slackそれぞれに入れましょう。

![スクリーンショット 2022-12-27 0.52.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/998825fd-f65d-de95-6cc7-02113f37ff40.png)

Slackに関してはコネクションという形で、接続情報を保存できるので、先にコネクションを作っておくと便利です。
![スクリーンショット 2022-12-27 0.54.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/fb0437a9-5aa7-f9b8-526a-79b635f10f26.png)

各ソースの設定が完了したら、今度はそれぞれを繋いでいきます。

今回はデータベースの値から、selectした結果をtxt情報に変換し、LINE,Slackそれぞれへ繋いでいきます。

sqlで取得した情報はマッピングをする必要があるので、下記アイコンのソースを連携して、マッピングを行います。
![スクリーンショット 2022-12-27 0.56.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/1d100c28-3288-477c-059b-9c6a9de46e0a.png)

ドラックで、表示したい内容を左から右に引っ張っていきます。
今回はテキストを変更したいので、テキストに対して矢印を引きます。

![スクリーンショット 2022-12-27 0.55.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/8f68a55f-47d5-20bf-2345-00957f4f61bf.png)

一通り完了したら、実行を押してテストができます。
このときに、エラーがあった場合は、出力結果を返してくれるのがとてもありがたいです。
![スクリーンショット 2022-12-27 0.58.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/82e96064-5be3-4896-c86e-9e800ea50d3c.png)

##### 実行結果

今回、テストデータベースにあった、メーカーの値をそのまま出力する処理を行いました。
![スクリーンショット 2022-12-27 0.59.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/b557a3eb-93d5-9282-520c-07417d5dd47f.png)

実際に投稿されているかを確認してみます。

メーカーに入っていた結果がちゃんと取れてますね！

![スクリーンショット 2022-12-27 1.00.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/cc042be8-c25f-8df1-82a2-c9f56b9796db.png)

![スクリーンショット 2022-12-27 1.02.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/c50d09dc-7e21-bfcc-c755-42657e13b524.png)

今回はテスト投稿だけでしたが、実際に試すのもそこまで難しくなさそうです！

## ASTERIA Warpを使ってみて

サクサクと実現できるので、楽しかったです！
また豊富なツールと連携できるので、自由度が高く、やりたいことを簡単に実現しやすいなと思いました。

ただ、正直、ノーコードツールの中では難易度が高いなと思いました！
非エンジニアがサクッと使うには知らないといけないことが多いのかなと。
例えば、関連サービスと繋ぐときに、アプリと自動連携してくれたら楽だが、Tokenの取得などの手続きが必要になるなど。

以下に気になった点をまとめました！

### 良かったところ
* 連携できる機能が豊富。
    * 各種SNSを一通り揃えている
    * Google関連のツールなど、日常的に使うものが用意されている
* ドキュメントが豊富
    * 使い方が、ググらなくてもドキュメント見れば解決するのはありがたい。

### こうなるともっと嬉しいところ
* 各連携を行うときに、その連携をどうやって使うかがパッとイメージしづらい。
    * ヘルプを押すと、すぐにドキュメントが出てくるようになってるのは良い。
        * ただ、チュートリアル的なのがあるともっと嬉しい。
        * また、ヘルプから全文検索が欲しい。
            * メッセージに入れるプロパティ式をどう対応すればいいかが最初わからなかった。
* SQLビルダーが急にドラッグ&ドロップになるのであまり直感的でない。
    * ドラックできますみたいな表示があればいいが、ないのでチュートリアルを見ないと詰まる。
    * クリックで出てきたらいいなあと思いました。


## おわりに

以上、ASTERIA Warpを使って簡単に自動化！SNSでの投稿自動化！
ノーコードツール、普段あまり触ったことがないので、新鮮でした！

また、GoogleDriveでのファイル命名管理をやりたかったのですが、今回チャレンジできなかったので
機会があれば再度、挑戦したいと思います！
[^2]: * GoogleDriveでファイル管理をしやすくする
    * 共有ドライブだと、命名ルールがバラバラになりがちで、「あのファイルどこ？」となりやすい
    * 保存されたファイルの命名ルールが守られているかを確認する
    * 守られていないものがあれば通知する


ありがとうございました！

## ASTERIA Warpを初めて使うときに見ておいた方がよいページ

自分が触ったときに、苦戦したので、初めて使う人は下記を見ておくと良いです！

* [プロパティ式について](https://help.asteria.com/documentation/warp/ja/4.5/flow/designer/guide/component_property_macro.html)
* [データベースからデータを取得する](https://support.asteria.com/hc/ja/articles/115002331787-%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%8B%E3%82%89%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%82%80%E3%81%AB%E3%81%AF)
* [トリガーによる起動と実行設定](https://help.asteria.com/documentation/warp/ja/4.4/flow/designer/guide/exec_trigger.html)