Help us understand the problem. What is going on with this article?

Twilioを利用してJavaで絵文字つきSMS送ってみたメモ

More than 3 years have passed since last update.

Twilioを利用してJavaで絵文字つきSMS送ってみたメモ

少し前、知り合いの方に教えてもらったサービスを触ってみたかったのでそのメモです。

そもそもTwilio って?

すごく端的に言うと、APIで電話が関連する下記のような機能を利用できる。
- 電話の発信(音声通話や録音など)
- 電話の着信(どの数字押したとか情報を受け取れる)
- SMSの送受信

詳細はこちらの公式サイト参照

アカウントと電話番号の取得

下記の記事を参考にアカウントの取得と電話番号の取得します。
twilioのトライアル登録してみた
TwilioでSMSを送信してみた
- 取得する番号が日本の番号(050~)だとSMSが利用できませんので注意
- トライアルでいくら分利用できるのかは明らかにされていないよう
参照
無料トライアルアカウントの制限事項は何ですか?

Javaで実装

下記のサポートページを参考にJavaで実装します

Twilio 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の着信を確認

Screenshot.png
来た来た、非常に簡単に実装できました。

ただ、それだけでは、あまりにも芸がないので絵文字くらい埋め込んでみよう。

下記のページを参考に絵文字のUnicode情報を確認します。
ファイル名0219の猫に決定!!
au/docomo共通絵文字データ ダウンロード

ソースのメッセージボディを猫絵文字に!!

Example.java
    params.add(new BasicNameValuePair("Body", "猫 " + "\u1F63B"));

実行!

Screenshot2.png
あれ、猫出ない。っと思ったら、テスト端末がAuのAndroid4.2系だった。上記絵文字は4.4系からとな!

仕方ないので、古い形式の絵文字に変更

下記のページを参考に絵文字のunicodeを取得します。(なんかガラケーを思い出す。。。)
絵文字番号251の猫に決定!!
絵文字

Example.java
    params.add(new BasicNameValuePair("Body", "猫 " + "\uE4DB"));

実行!!

Screenshot3.png
猫でました!

感想

思ったより簡単にSMSが送信出来た印象でした。電話の発信も簡単にできた。
※電話の発信は海外からかけるのは怖かったので、日本の番号に変更してからやってみました。
次は、電話の着信をやってみよう!(トライアルでとこまで出来るのか次第ですが)

opst
情報技術と社員力でお客様を成功に導く Make IT Your Success
https://www.opst.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away