6
5

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 5 years have passed since last update.

オープンストリームAdvent Calendar 2015

Day 9

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

Last updated at Posted at 2015-12-08

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

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

そもそもTwilio って?

すごく端的に言うと、APIで電話が関連する下記のような機能を利用できる。

  • 電話の発信(音声通話や録音など)
  • 電話の着信(どの数字押したとか情報を受け取れる)
  • SMSの送受信

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

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

下記の記事を参考にアカウントの取得と電話番号の取得します。
twilioのトライアル登録してみた
Twilioで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が送信出来た印象でした。電話の発信も簡単にできた。
※電話の発信は海外からかけるのは怖かったので、日本の番号に変更してからやってみました。
次は、電話の着信をやってみよう!(トライアルでとこまで出来るのか次第ですが)

6
5
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
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?