9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめに

この投稿は、RPAツール「UiPath」での 実装例 について記事です。
今回は、電話・SMSのプラットフォーム「twilio」のAPIを使用して、指定の電話番号にSMSを送信します。

UiPath Adventカレンダーの 4日目 の記事でもあります。

UiPathでTwilio

UiPathマーケットプレイスには「カスタムアクティビティ」として、Twilio系のアプリが公開されており、それを使用することもできます。

ですが「使い方がよくわからない(TдT)」のと、「Twilio自体がAPIで提供されていて、WEBリクエストで普通に呼び出せる」ので、例のように「InvokeCode(コード呼び出し)」でやってみます。

Twilio側の準備

Twilioアカウントの作成、電話番号登録はネット上に情報が沢山あるので、割愛します。

今回はTwilioの「Messaging API」を使用しますが、パラメータとして

  • accountID
  • authToken
  • messagingServiceSID(Fromパラメータに電話番号を指定する形でも可)

を使用するので、それぞれ以下のように取得します

<accountID・authToken>
image.png

<messagingServiceSID>
image.png

UiPath側の準備

HTTP Request アクティビティでも出来そうな気もしますが、エラーハンドリングなどしっかりしたいので、InvokeCode(コード呼び出し)アクティビティを使用して、Twillio のAPIを呼び出してみます。

InvokeCode(コード呼び出し)アクティビティで、以下のように指定します。
上記で取得したTwilioの「accountID・authToken・messagingServiceSID」を使用して、指定の電話番号にメッセージを送信するコードです。

'// 引数
'// - in_accountID
'// - in_authToken
'// - in_messagingServiceSID
'// - in_to
'// - in_text
'// - out_error
'// - out_result

Try
    Dim wc As New Net.WebClient
    '// URL
    Dim reqUrl As String = String.Format("https://api.twilio.com/2010-04-01/Accounts/{0}/Messages.json", in_accountID)
    out_result &= String.Format("[url]{0}", reqUrl)
    '// パラメータ
    Dim param As New System.Collections.Specialized.NameValueCollection
    param("To") = in_to
    param("MessagingServiceSid") = in_messagingServiceSID
    param("Body") = in_text
    out_result &= String.Join(" ", param.AllKeys.Select(Function(k As String) "[" & k & "]" & param(k)))
    '// basic認証
    wc.Credentials = New System.Net.NetworkCredential(in_accountID, in_authToken)
    '// 送信
    Dim res As Byte() = wc.UploadValues(reqUrl, "POST", param)
    out_result &= String.Format("[response]{0}", System.Text.Encoding.ASCII.GetString(res))
Catch ex As Exception
    out_error = ex.Message
End Try

ポイントは「ベーシック認証」であることです。それ以外は普通のPOST形式のAPIリクエストです。
送信すると以下のようにSMSが送信されます。

image.png

終わりに

いかがでしたでしょうか。実装時に役立てば幸いです。
この記事が参考になったら、 LGTMをお願いします。閲覧ありがとうございました。

9
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?