LoginSignup
9
0

More than 5 years have passed since last update.

AndroidアプリにSalesForce MarketingCloud SDKを導入する

Posted at

ちょっと前に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

以下を追加

build.gradle
allprojects {
    repositories {
+       maven { url "http://salesforce-marketingcloud.github.io/JB4A-SDK-Android/repository" }
    }
}

app/build.gradle

以下を追加

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を登録するのも忘れずに

AndroidManifest.xml
    <application
+       android:name=".AndroidApp"

ここで一旦ビルドし、LogcatにMarketingCloudSdkが使用可能と表示されればSdkの導入完了。

あとはMarketingCloud管理画面からビルドした(インストールした)アプリの情報が確認できるはず。

もう管理画面からPushメッセージが送れるはずなので、連絡先リストのようなものを作って端末を追加し、そのリストに対してPushメッセージを送れば届くはず。

9
0
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
9
0