Androidクイックスタート

本クイックスタートではNotifyとTwilio NotifyサンプルAndroid Appを使用してプッシュ通知を送信する方法をご紹介します。

注意
本ガイドではFCM (Firebase Cloud Messaging)を使用して、Androidにプッシュ通知を送信します。 このクイックスタート用にFCM通知を構成する(まだ構成していない場合)には、このガイドに従ってください。

コンソールでは、Notifyサービスを作成します。 SIDを書き留めておいてください! 後ほどコードを記述する際に使用します。

Notify SMSクイックスタート - Notifyサービスインスタンスのセットアップ

アカウント情報の収集


Twilioアカウントから必要な情報をすべて取得することが必要です。 以下が必要になります

設定値 概要
サービスインスタンスSID アプリケーションのすべてのデータが保存されスコープ範囲にあるServiceインスタンスです。 Console上で作成できます。
Account SID REST API リクエストの認証に使用します。コンソールのここで確認します
API Key REST API リクエストの認証に使用します。Account SID と同様、コンソールのここで確認します
API Secret REST API リクエストの認証に使用します。Account SID と同様、コンソールのここで確認します

また、Twilioでプッシュクレデンシャルを作成し、Notifyサービスでそれを構成することも必要です。 こちらでクレデンシャルをアップロードできます。 まだお持ちでない場合は、このガイドに従って作成してください。

注意AppをFirebaseコンソールで登録する際、パッケージ名としてcom.twilio.notify.quickstartが設定されていることを確認し、アプリケーションのパッケージ名をAndroidクイックスタートAppと一致させてください。

サーバーアプリケーションの設定


Notifyサービスの使用時、通知を受信するためデバイスを登録し、これらのデバイスに通知を送信できるようにすることが必要です。 手っ取り早く済ませられるよう、これらのタスクを完了するためのサーバーを下記の言語でご用意しています:

サンプルモバイルAppはサーバー側アプリケーションと通信を行い、通知のためにデバイスを登録します。 これについては次の段落でさらに掘り下げます。

この例ではNode.jsのサーバーを使用しますが、お好みの言語をお選びいただけます。

続いて必要になるもの:
  • Step 1: Node.jsのインストール(もしまだ行っていない場合)
  • Step 2: Node.jsサーバーアプリケーションのダウンロードと展開
  • Step 3: コンピューター上でのサーバーアプリケーションの構成と実行

Step 1: Node.jsのインストール

こちらでNode.jsを入手し、インストールを完了します。

Step 3: コンピューター上でのサーバーアプリケーションの構成と実行

これで、Node.jsがインストールされ、Node.jsサーバーがダウンロード、展開できたので、ここでご自身のアカウント情報でサーバーの構成を行います。 .env.exampleフィアルを.envにコピーします。 続いて、.envファイルを編集して、上記で収集した3つの構成パラメーター(アカウントSID、認証トークン、Notify Service Instance SID)を追加することが必要です。 Macのターミナルウィンドウや他のテキストエディターからも行えます。

コードサンプルを読み込んでいます...
Language
{
  "type": "server",
  "description": "Sample configuration files for Notufy",
  "title": "Notify Environment Configuration"
}
# Required for all uses
TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxx
TWILIO_API_KEY=SKxxxxxxxxxxxxxxxxxxxx
TWILIO_API_SECRET=xxxxxxxxxxxxxxxxxxxxx

# Required for Video
TWILIO_CONFIGURATION_SID=

# Required for Chat
TWILIO_CHAT_SERVICE_SID=

# Required for Notify
TWILIO_NOTIFICATION_SERVICE_SID=ISxxxxxxxxxxxxxxxxxxxxxxx

# Required for Sync
TWILIO_SYNC_SERVICE_SID=
# Required for all uses
TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxx
TWILIO_API_KEY=SKxxxxxxxxxxxxxxxxxxxx
TWILIO_API_SECRET=xxxxxxxxxxxxxxxxxxxxx

# Required for Video
TWILIO_CONFIGURATION_SID=

# Required for Chat
TWILIO_CHAT_SERVICE_SID=

# Required for Notify
TWILIO_NOTIFICATION_SERVICE_SID=ISxxxxxxxxxxxxxxxxxxxxxxx

# Required for Sync
TWILIO_SYNC_SERVICE_SID=
Notify用のサンプル構成ファイル
Notifyの環境設定

Notify用のサンプル構成ファイル

これで、依存関係をインストール。 ターミナルウィンドウでアプリケーションを解凍したフォルダーに移動して下記を実行します:

npm install

設定が完了したら、サーバーを起動する準備は完了です - 再度ターミナルで下記を実行します:

npm start

サーバーが実行されていることを確認するには、Webブラウザーでhttp://localhost:3000にアクセスします。 どのサービスが構成されているかを知らせるホーム画面が表示されるはずです。

Twilio SDKスターターホーム画面

 

 

これでサーバーのセットアップが完了したので、Twilio NotifyサンプルAndroidアプリケーションを動かしてみましょう。

Twilio NotifyサンプルAndroid Appのセットアップ


続いて必要になるもの:
  • Step 1: Twilio NotifyサンプルAndroidアプリケーションを入手する
  • Step 2: まだ行っていない場合、Androidプッシュ通知を構成する
  • Step 3: Twilio NotifyサンプルAndroidアプリケーションを実行する

手早く済ませるため、Androidサンプルアプリケーションを、Javaで記述されたスタンドアロンのAndroid Studioプロジェクトとして提供しています。

このアプリケーションは Gradle オートメーションシステムで構築されており、GitHub から入手できます。

Android Studio を開き、プロジェクトの build.gradle ファイルをダブルクリックして、プロジェクトをインポートします。

まだの場合は、このガイドに従ってTwilio NotifyサンプルAndroid App用にAndroidプッシュ通知を構成します。

注意
サンプルアプリケーションには、下記の値を使用します:
  • アプリケーション名 Notify Quickstart
  • Androidパッケージ名: com.twilio.notify.quickstart

 続いて、Firebase Consoleにアクセスし、アプリケーションに'google-services.json'ファイルを生成します。

プロジェクトを開きます

Firebase Notifyクイックスタート

     

「設定」にアクセスします 

Firebase Notifyクイックスタート設定

 

google-services.json ファイルをダウンロードし、 /app folder. に保存します。 このファイルはFCMを通じて通知をアプリケーションで受信するよう構成します。 

Firebaseはgoogle-service.jsonをダウンロードします 

プロジェクトをコンパイルすると、gradleの依存関係を自動的にビルドします。

続いて、notifyapi/TwilioSDKStarterAPI.javaファイル内で、private final static String BASE_SERVER_URL = "YOUR_SDK_STARTER_SERVER_URL";の行をお使いのサーバーのアドレスに置き換えてください。

 

NotifyクイックスタートのベースサーバーURL



Androidプッシュ通知 (FCM) 用のバインディングの作成


つづいて、ユーザーのアイデンティティとAppの実行されているデバイスとの間にバインディングを作成する必要があります。 ユーザーのアイデンティティーはGUIDのような任意の一意な識別子を選べます。 アイデンティティーとバインディングについては、BaindingリソースリファレンスAPIで詳しく触れられています。

App内では選択したアイデティティーを入力し、Create Bindingボタンをクリックします。

 

Notify Android クイックスタート - バインディングを作成するサンプルモバイルApp

 

このアクションは、アプリケーションで実行されている特定のデバイス上のユーザーを一意に識別するバインディングを作成します。

Node.jsサーバーの実行されているターミナルウィンドウでは、このように表示されます

BindingInstance {
  _version: 
   V1 {
     _domain: 
      Notify {
        twilio: [Object],
        baseUrl: 'https://notify.twilio.com',
        _v1: [Circular] },
     _version: 'v1',
     _credentials: undefined,
     _services: 
      { [Function: ServiceListInstance]
        _version: [Circular],
        _solution: {},
        _uri: '/Services',
        create: [Function: create],
        each: [Function: each],
        list: [Function: list],
        page: [Function: page],
        get: [Function: get] } },
  sid: 'BSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
  accountSid: 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,
  serviceSid: 'ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,
  dateCreated: 2017-01-17T13:07:39.000Z,
  dateUpdated: 2017-01-17T13:07:39.000Z,
  notificationProtocolVersion: '3',
  endpoint: 'user9999999XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
  identity: 'user9999999',
  bindingType: 'fcm',
  address: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
  tags: [],
  url: 'https://notify.twilio.com/v1/Services/ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Bindings/BSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
  _context: undefined,
  _solution: 
   { serviceSid: 'ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
     sid: 'BSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' } }

デバッガーモードでサンプルAppを実行していてそれが失敗する場合、コンソールにエラーメッセージが表示されます。

アイデンティティーに個人を識別できる情報を使用しないでください
Notifyはアイデンティティーをユーザーの一意な識別子として使用します。 この属性を処理するシステムは直接的な識別情報ではないことを前提としているため、識別情報(個人の名前、自宅住所、メールアドレス、電話番号などの個人識別情報、またはPII (=Personally Identifiable Information) をアイデンティティーとして直接使用しないでください。

これでBindingが得られました。 すでにプッシュ通知をデバイスまたはエミュレーターで動作するAndroid Appに送信する準備ができました。

プッシュ通知をAppに送信する


通知を送信するには、ダウンロード済みのサーバースターターキットのNotifyページを使用できます。 このまま進めて、ホームページ下部の「通知」ボタンをクリックし、Notifyページに移動します。

このページ上で、このAppで使用しているアイデンティティーにメッセージを送信します。 TwilioでBindingを登録済みであるため、サーバーはお使いのデバイスに「Hello IDENTITY」メッセージを通知として送信します。

できましたね!ここからはあなたがご自身のアプリを作る番です。

ngrokとデバイス上でのTwilio Notify Androidアプリケーションの実行


注意
プッシュ通知をデバイスに送信するには、デバイス上でTwilio NotifyサンプルAndroid Appを実行し、Node.jsのローカルサーバーをパブリックURLに公開する必要があります。

これを行う方法の一つがngrokです。

ngrokをダウンロードします。ターミナルウィンドウでngrokのフォルダーに移動し、実行します。

./ngrok http 3000

そうすると、下記のような表示がご覧いただけるでしょう。

Session Status                online                                                                                                            
Version                       2.1.18                                                                                                            
Region                        United States (us)                                                                                                
Web Interface                 http://127.0.0.1:4040                                                                                             
Forwarding                    http://a9534ff6.ngrok.io -> localhost:3000                                                                        
Forwarding                    https://a9534ff6.ngrok.io -> localhost:3000                                                                       

Connections                   ttl     opn     rt1     rt5     p50     p90                                                                       
                              2       0       0.00    0.00    61.71   120.52                                                                                                                                                                           

続いて、notifyapi/TwilioSDKStarterAPI.javaファイル内で、private final static String BASE_SERVER_URL = "YOUR_SDK_STARTER_SERVER_URL";の行をお使いのサーバーのアドレスに置き換えてください。

 

NotifyクイックスタートのベースサーバーURL

 

それでは、ご自身のデバイス上でAppをビルドしましょう。 Appが読み込まれると、シミュレーターの場合と同様、ユーザーのアイデンティティを入力し、デバイスにプッシュ通知を送信するシンプルなUIが表示されます。

関連トピック


Notifyで可能なことはさらにたくさんあります。 通知の送信に、他のクイックスタートもお試しください。

またはハウツー記事もご覧ください:

ヘルプが必要ですか?

誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。

コードサンプルを読み込んでいます...
{
  "type": "server",
  "description": "Sample configuration files for Notufy",
  "title": "Notify Environment Configuration"
}
# Required for all uses
TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxx
TWILIO_API_KEY=SKxxxxxxxxxxxxxxxxxxxx
TWILIO_API_SECRET=xxxxxxxxxxxxxxxxxxxxx

# Required for Video
TWILIO_CONFIGURATION_SID=

# Required for Chat
TWILIO_CHAT_SERVICE_SID=

# Required for Notify
TWILIO_NOTIFICATION_SERVICE_SID=ISxxxxxxxxxxxxxxxxxxxxxxx

# Required for Sync
TWILIO_SYNC_SERVICE_SID=
# Required for all uses
TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxx
TWILIO_API_KEY=SKxxxxxxxxxxxxxxxxxxxx
TWILIO_API_SECRET=xxxxxxxxxxxxxxxxxxxxx

# Required for Video
TWILIO_CONFIGURATION_SID=

# Required for Chat
TWILIO_CHAT_SERVICE_SID=

# Required for Notify
TWILIO_NOTIFICATION_SERVICE_SID=ISxxxxxxxxxxxxxxxxxxxxxxx

# Required for Sync
TWILIO_SYNC_SERVICE_SID=