2016-12-12 14 views
1

同じアプリ内に2つの新しい通知SDKを統合しています。 FirebaseとSalesforce Marketing Cloud(以前はExactTarget)でした。ExactTargetとFCMの統合に関する問題

私たちのIOSバージョンは完全に動作しており、干渉は検出されていません。両方のツールから通知を送信します。

ただし、Androidのバージョンに問題があります。我々のテスト・デバイスのいくつかの動作は次のとおりです。

  • デバイスが正しく
  • がランダムに時間的に言えば、見かけ上問題なく
  • デバイスが通知を受け取る2つのプラットフォームの中に登録されている

      、Salesforceのマーケティング・クラウドはできませんもうデバイスに通知してください。彼らはまだそのプラットフォーム内オプトイン、およびETは、メッセージを送信しようとしますが、されているエラーとGCMレスポンス、

    InvalidRegistration、 04 2016年11月22日:00:00、TokenRejection、| ID | 8 |:(ServiceStatus、ServiceResponse、TrackingDate、FailureType、SystemToken)

    私たちの推測では(私たちは多くのテストを行ってきた)GCM内のトークンの変化が問題という生産されていることです。私たちはSalesforceに新しいトークンを更新するたびに(今度は成功していない)、Registration.getInstance().setSystemTokenInCache(token)というメソッドを使用してFirebaseから取得します。

  • +0

    こんにちは、同じことを達成しようとしていますが、firebaseコンソールから送信すると、Androidで2回通知されます。これは、主に私の意見では通知がサービスにではなくアプリに渡されるためです。この問題をどうやって解決しましたか? –

    +0

    私たちはそれを解決しませんでした。私たちはSalesforce自身と連絡を取り合い、いくつかのヒントを与えられましたが、どれも動作していないようでした。 –

    答えて

    0

    私たちはそれを解決しませんでした。我々はSalesforce自身と連絡を取り合い、いくつかのヒントを与えられたが、どちらもうまく動作していないようだ:

    ここでは、 Firebaseで2つのプロジェクトを作成し、google-services.jsonファイルを調整するのではなく、ただ1つのプロジェクトから送信者IDを使用しました。あなたのコードでは、マーケティングクラウドの初期化を同じにし、google-services.jsonファイルを同じにして、呼び出しを変更するだけです。 FirebaseInstanceId.getInstance()。getToken(); 〜 FirebaseInstanceId.getInstance()。getToken( "158036016337"、 "FCM"); ここで、最初のパラメータは送信者ID(マーケティングクラウドの初期化で使用するのと同じ送信者ID)で、「FCM」が範囲です。

    これは、Firebaseとマーケティングクラウドの2つの異なるトークンを返しました。しかし、両方のトークンには11文字の接頭辞があり、その後に同じコロンが続きます。私は両方のトークンを使用してプッシュして、どちらもうまくいった。 Firebaseのトピックを購読しました。 FirebaseMessaging.getInstance()。subscribeToTopic( "xxxxx"); Fire Top APIを使用してそのトピックにプッシュを送信し、それも同様に機能しました。マーケティングクラウドからいくつかのプッシュを送って、うまくいきました。私はあなたがこれをテストすべきことに同意します。

    +0

    あなたの質問の下でこれを編集するべきです。 – Nae

    +0

    これを行う方法がわかりません... –

    +0

    元の投稿の左下隅です。編集ボタンがあります。 – Nae

    0

    私たちはこの問題を解決する方法が異なります。私たちはFirebaseサービスで(マニフェストにインテントルールを実装することによって)通知を受け取るようにしました。次にonMessageReceived()メソッドでは、ExactTargetからの通知がPushMessageManager.isMarketingCloudPush(Bundle)であるかどうかをチェックします。これが当てはまる場合、マーケティングクラウドは

    MarketingCloudSdk.requestSdk(new 
    
        MarketingCloudSdk.WhenReadyListener() { 
           @Override 
           public void ready(MarketingCloudSdk marketingCloudSdk) { 
            marketingCloudSdk.getPushMessageManager().handlePushMessage(bundle); 
           } 
          }); 
    

    で処理してください。それ以外の場合は、アプリケーションのFirebaseプッシュ通知として処理します。

    関連する問題