ちょっと前にAndroidアプリにSalesForce MarketingCloudのSDKを導入したので、どこを参考にしたのか何をやったのか残しておく。
前提
- SalesForce MarketingCloudのアカウントを持っていて管理画面にログインできる
- Firebaseアカウント作成済み
- SalesForce MarketingCloudとFirebaseは紐づけ済み(サーバーキーとか)
参考先
SDKガイド
Journey Builder for Apps Android SDK
http://salesforce-marketingcloud.github.io/JB4A-SDK-Android/
Android MarketingCloud SDKの更新情報、導入方法、機能の実装方法が記載されている。
ちなみに全部英語、難しい事は書いてないしコードを見れば分かる。
Github
salesforce-marketingcloud/LearningAppAndroid
https://github.com/salesforce-marketingcloud/LearningAppAndroid
実際にAndroidアプリに導入したサンプルコードがある、もちろん英語。
ちなみにこのリポジトリをcloneしてそのままビルドしてもエラーになるので注意!
サポートライブラリのバージョンを、MarketingCloudSdk内部で使用しているサポートライブラリのバージョンを合わせなくてはならない。
(導入部分で説明)
SDK導入の実装
実装内容はSDKガイドに詳しく載っている。
以下は自分がやった必要な事だけをまとめる。
build.gradle
以下を追加
allprojects {
repositories {
+ maven { url "http://salesforce-marketingcloud.github.io/JB4A-SDK-Android/repository" }
}
}
app/build.gradle
以下を追加
dependencies {
+ compile ('com.salesforce.marketingcloud:marketingcloudsdk:5.6.3') {
+ exclude module: 'android-beacon-library' //ビーコンメッセージを使うならこの行を削除
+ exclude module: 'play-services-location' //ジオフェンスメッセージを使うならこの行は削除 }
}
//11.8.0を指定
+compile 'com.google.android.gms:play-services-maps:11.8.0'
//サポートライブラリは27.1.0に合わせる
+compile 'com.android.support:appcompat-v7:27.1.0'
+compile 'com.android.support:design:27.1.0'
今日(2018/09/07)時点で最新Sdkは5.6.3だった。
この5.6.3ではPlayServideは11.8.0
, サポートライブラリは27.1.0
に合わせないとエラーメッセージがでるので注意
ビーコン/ジオフェンスメッセージ機能を使わないのでexcludeで除外しているが、使う場合はexclude行を削除する。
カスタムApplicationでsdk設定
カスタムApplicationクラスを作成し、Sdkの初期設定を行う。
ここでアプリId、アクセスToken、GcmSenderId設定する。
public class AndroidApp extends Application {
@Override public void onCreate() {
super.onCreate();
MarketingCloudSdk.init(this, MarketingCloudConfig.builder()
.setApplicationId("applicationId")
.setAccessToken("accessToken")
.setGcmSenderId("gcmSenderId")
.setNotificationSmallIconResId(R.drawable.ic_notification)
.setNotificationChannelName("My Notifications") // <=APIレベル26以上なら必須
.build(), new MarketingCloudSdk.InitializationListener() {
@Override
public void complete(@NonNull InitializationStatus status) {
if (status.isUsable()) {
Log.d(TAG, "MarketingCloudSdkが使用可能");
} else {
Log.d(TAG, "MarketingCloudSdkに問題が発生");
}
}
}
);
AndroidManifestにカスタムApplicationを登録するのも忘れずに
<application
+ android:name=".AndroidApp"
ここで一旦ビルドし、LogcatにMarketingCloudSdkが使用可能
と表示されればSdkの導入完了。
あとはMarketingCloud管理画面からビルドした(インストールした)アプリの情報が確認できるはず。
もう管理画面からPushメッセージが送れるはずなので、連絡先リストのようなものを作って端末を追加し、そのリストに対してPushメッセージを送れば届くはず。