Twilioを利用してJavaで絵文字つきSMS送ってみたメモ
少し前、知り合いの方に教えてもらったサービスを触ってみたかったのでそのメモです。
そもそもTwilio って?
すごく端的に言うと、APIで電話が関連する下記のような機能を利用できる。
- 電話の発信(音声通話や録音など)
- 電話の着信(どの数字押したとか情報を受け取れる)
- SMSの送受信
詳細はこちらの公式サイト参照
アカウントと電話番号の取得
下記の記事を参考にアカウントの取得と電話番号の取得します。
twilioのトライアル登録してみた
TwilioでSMSを送信してみた
- 取得する番号が日本の番号(050~)だとSMSが利用できませんので注意
- トライアルでいくら分利用できるのかは明らかにされていないよう
参照
無料トライアルアカウントの制限事項は何ですか?
Javaで実装
下記のサポートページを参考にJavaで実装します
Example.java
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import com.twilio.sdk.TwilioRestClient;
import com.twilio.sdk.TwilioRestException;
import com.twilio.sdk.resource.factory.MessageFactory;
import com.twilio.sdk.resource.instance.Message;
public class Example {
// Find your Account Sid and Token at twilio.com/user/account
public static final String ACCOUNT_SID = "****";
public static final String AUTH_TOKEN = "****";
public static void main(String[] args) throws TwilioRestException {
TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN);
// Build a filter for the MessageList
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("Body", "Test Message"));
params.add(new BasicNameValuePair("To", "+8190********"));
params.add(new BasicNameValuePair("From", "+1********"));
MessageFactory messageFactory = client.getAccount().getMessageFactory();
Message message = messageFactory.create(params);
System.out.println(message.getSid());
}
}
上記のクラスを実行しSMSの着信を確認
ただ、それだけでは、あまりにも芸がないので絵文字くらい埋め込んでみよう。
下記のページを参考に絵文字のUnicode情報を確認します。
ファイル名0219の猫に決定!!
au/docomo共通絵文字データ ダウンロード
ソースのメッセージボディを猫絵文字に!!
Example.java
params.add(new BasicNameValuePair("Body", "猫 " + "\u1F63B"));
実行!
あれ、猫出ない。っと思ったら、テスト端末がAuのAndroid4.2系だった。上記絵文字は4.4系からとな!
仕方ないので、古い形式の絵文字に変更
下記のページを参考に絵文字のunicodeを取得します。(なんかガラケーを思い出す。。。)
絵文字番号251の猫に決定!!
絵文字
Example.java
params.add(new BasicNameValuePair("Body", "猫 " + "\uE4DB"));
実行!!
感想
思ったより簡単にSMSが送信出来た印象でした。電話の発信も簡単にできた。
※電話の発信は海外からかけるのは怖かったので、日本の番号に変更してからやってみました。
次は、電話の着信をやってみよう!(トライアルでとこまで出来るのか次第ですが)