プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

Twilio 試した(2/3):FAX 送信を試しました

Twilio 試用のその2になります。

Twilio 試した(1/3):電話(音声通話)機能を使ってみました - プログラマーのメモ書き

Twilio 試した(2/3):FAX 送信を試しました - プログラマーのメモ書き

Twilio 試した(3/3):FAX 受信と通知を試しました - プログラマーのメモ書き

さて、次は FAX の送信を試してみたいと思います。

と、そのまえに、FAX API を使ったデモが公開されているので、こちらを見てみると FAX のイメージがつかめるかもしれません。

github.com

FAX 送信

最初に電話番号を購入する際、必要な機能を指定することができました。日本国内用の多くの電話番号は、通話とFAXが使えます。

前の記事で書いたように Twilio の電話番号の設定は着信時にどうするか?という形で書くので、FAX送信の場合は特に設定は必要ありません。 実際、着信時は音声を処理するようにしていても、FAXを送信することができます。

で、FAXの送信ですが、簡単に試すには REST API を curl でたたけばOKです。

jp.twilio.com

では、実際にやってみたいと思います。 まずは準備として送信するFAX(pdf)を準備します。

pdf の準備

今のところ Twilio 側には送信するFAX(pdfファイル)をアップロードする機能はなく、API のパラメータとして、PDFファイルのURLを指定するようです。

なので、まずはpdfファイルをアップロードします。 テストの段階では、別に誰が見てもいいのですが、一応FAXの文面が公開されるのはいろいろとまずいだろうと思います。 ということで、アップロード先は簡単でいいので認証が必要かなと思います。

さて、どこにアップロードするのがいいかな?と考えたのですが、今手持ちの環境で簡単にアップロード先として使えそうなのが、さくらインターネットのレンタルサーバーでした。 このレンサバ、いまのところメールサーバーとしてしか使ってなくて、空いてるのでテストには最適かと思います。

さくらインターネットだと、Basic認証の設定も簡単にできるそうです。

help.sakura.ad.jp

ということで、適当なディレクトリを切って、Basic認証の設定をしておきます。

あとは送信するpdfをアップロードしておけば、準備完了です。

送信

pdfの準備ができたら、下記のように呼び出します。

mor@DESKTOP-H6IEJF9:~$ curl -X POST https://fax.twilio.com/v1/Faxes
 --data-urlencode "From=+81送信元電話番号(Twilioのトライアル用電話番号)"
 --data-urlencode "To=+81送信先電話番号"
 --data-urlencode "MediaUrl=https://ユーザー名:パスワード@xxxxxxxx.sakura.ne.jp/xxxxx/test01.pdf"
 -u AccountSID:AuthToken

この時、Account Sid と AuthToken が必要になります。これらは

f:id:junichim:20181109111454p:plain

コンソールのダッシュボードに記載されています。

実際に試してみると、curlのレスポンスはすぐに返ってきますが、

{
     "media_sid":null
    ,"status":"queued"
    ,"direction":"outbound"
    ,"from":"+815送信元電話番号(Twilioのトライアル用電話番号)"
    ,"date_updated":"2018-11-09T02:06:06Z"
    ,"price":null
    ,"account_sid":"アカウントSID"
    ,"to":"+81送信先電話番号"
    ,"date_created":"2018-11-09T02:06:06Z"
    ,"url":"https://fax.twilio.com/v1/Faxes/・・・"
    ,"sid":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    ,"duration":null
    ,"num_pages":null
    ,"quality":"fine"
    ,"price_unit":null
    ,"api_version":"v1"
    ,"media_url":null
    ,"links":{
         "media":"https://fax.twilio.com/v1/Faxes/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/Media"
    }
}

といった感じで、status が queued になっています。

しばらく待つと、この作業PCの後ろにある電話機(FAX機能付き)が動き出しました。無事に送れたようです。

とりあえずは試用としてはこれでOKですね。 実際に使うときは送信状態のステータス確認や、送信失敗時の通知などもやりたいところです。

補足

今回は さくらインターネットのレンサバを使い、pdfファイルのアップロード先を作りました。

とのとき、Basic認証のパスワードに記号をあれこれいれて作ったら、Twilio側からうまくアクセスできないことがありました。 これもおいおい確認したいところです。

とはいえ、とりあえずFAXの送信もできました。最後はFAX受信と通知を試そうと思います。