LINE WORKS から FAX を送信する Bot をつくってみた

## LINE WORKS Bot から FAX を送る
今回はシンプルに、Bot に pdf を送ると決まった宛先に FAX 送信するように作ってます。
実用を考慮して送信先を Bot との会話で指定したり、pdf 以外のファイルを送信したりできるように作ることも可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/09f04781-1b01-5292-eeac-cd26d56c3db1.png)


##LINE WORKS Message API のアップデートでファイル送受信可能に

LINE WORKS の Bot がファイルを受信できるようになっています。

<blockquote class="twitter-tweet" data-lang="ja" data-theme="dark"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/LINEWORKS?src=hash&amp;ref_src=twsrc%5Etfw">#LINEWORKS</a> の Bot がファイルを受信できるようになっています (なっていました) 。ドキュメントにも反映されたので、活用しましょう :) <a href="https://t.co/AtDPtMFfmI">pic.twitter.com/AtDPtMFfmI</a></p>&mdash; iwaohig (@iwaohig) <a href="https://twitter.com/iwaohig/status/1306144975663423488?ref_src=twsrc%5Etfw">2020年9月16日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

トークでファイルを送ったら、FAX してくれる Bot をつくってみます。

##ファクス送信は ClickSend の FAX Gateway サービスを使う

https://www.clicksend.com/en/fax/
サインアップすると、200 円分くらい試用が可能です。FAX 送信料金は $0.1003 / 枚。

Http アクセス可能な場所においた pdf を API で送信できます。
https://developers.clicksend.com/docs/rest/v3/#ClickSend-v3-API-Fax

##Microsoft PowerAutomate でフロー作成

PowerAutomate に ClickSend のコネクタが追加されたので、今回はこれを使います。

<blockquote class="twitter-tweet" data-conversation="none"><p lang="ja" dir="ltr">今回も twilio を使うか、別のものを試そうか、いろいろ見てたのだけど、<a href="https://twitter.com/hashtag/PowerAutomate?src=hash&amp;ref_src=twsrc%5Etfw">#PowerAutomate</a> のコネクタに ClickSend が追加されていた。<br><br>twilio のコネクタは以前からあるのだけど、こちらは FAX には対応していなかった。ClickSend は FAX 送信に使えるコネクタがあるので、今回はこれを使ってみます。 <a href="https://t.co/0WjOTGLsW3">pic.twitter.com/0WjOTGLsW3</a></p>&mdash; iwaohig (@iwaohig) <a href="https://twitter.com/iwaohig/status/1333993598983970818?ref_src=twsrc%5Etfw">December 2, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

トリガーに "HTTP 要求の受信時" を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/bdf9e462-8e3c-ca77-fabf-4f072c4b5560.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/9acbb3e8-9775-0fc2-2870-241088b1487e.png)

要求本文の JSON スキーマを "サンプルのペイロードを使用してスキーマを生成する" で生成します。
ペイロードのサンプルは、こちらのページの記載を用います。
TITLE: メッセージ受信 - Callback 形式 (message)
URL: https://developers.worksmobile.com/jp/document/100500901?lang=ja

-> Request Example - type "file" の箇所

```
{
  "type": "message",
  "source": {
    "accountId": "admin@example.com",
    "roomId": "12345"
  },
  "createdTime": 1508062056427,
  "content": {
    "type": "file",
    "resourceId": "WAAAQPwBexX2HnseNvvM9Zyhvp2kIRF3Ul7L7/aMVti8="
  }
}
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/c09872b4-6d5d-0f06-38d3-d353f8f5e4bf.png)

次にユーザーから Bot 宛てに送信されたファイルを取得するために、"HTTP" をアクションに指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/56766715-b6ca-cdd8-4b17-5d3d5a6ab503.png)

コンテンツ ダウンロード API 実行用の設定を行います。
TITLE: コンテンツダウンロード
URL: https://developers.worksmobile.com/jp/document/1005026?lang=ja
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/b9e95f9f-2b9f-b58d-651b-16a01df9aa87.png)

PDF ファイルを ClickSend の API がアクセス可能な場所に転送します。FTP をつかってます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/6b721a9a-e791-3a9f-f2dc-06536af6d834.png)

ClickSend のコネクタで SendFax のアクションを使用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/174d5ef9-2c58-ca4f-4309-b365a6143af5.png)

Fax の送信先や PDF の URL などのパラメータを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/f455287a-29cb-eb64-47ee-240bbdf57a43.png)

送信が完了したことをユーザーに返信する処理をいれてます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396107/fb83b79b-d71a-42bb-c8b0-086dd7ec4f4b.png)

##動作確認
作成した Bot にトークで PDF ファイルを送ることで、FAX 送信が行われます。