2016-12-12 52 views
1

我們在同一個應用程序中集成了兩個新的通知SDK。 Firebase和Salesforce Marketing Cloud(以前稱爲ExactTarget)。集成Exacttarget和FCM的問題

我們的IOS版本工作正常,沒有檢測到干擾。我們發送來自兩個工具的通知。

但是,我們的Android版本出現問題。我們的一些測試設備的行爲是:

  • 設備在兩個平臺
  • 設備接收通知中正確招收沒有明顯的問題
  • 在時間上隨機地說,Salesforce的營銷雲不能通知設備了。他們仍然選擇加入該平臺內,並ET嘗試發送郵件,但有錯誤GCM迴應,

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

我們的猜測(我們做了很多測試),GCM中令牌的變化產生了這些問題。我們已經嘗試使用他們的方法Registration.getInstance().setSystemTokenInCache(token)在每次續訂時(我們從Firebase獲取它)推入新的令牌,迄今爲止沒有成功。

+0

嗨,我試圖實現同樣的事情,但如果我從Firebase控制檯發送,我會在Android上收到兩次通知。這主要是因爲通知是交給應用程序,而不是我認爲的服務。你是如何解決這個問題的? –

+0

我們沒有解決它。我們與Salesforce本身保持聯繫,並提供了一些提示,但他們似乎都沒有工作。 –

回答

0

我們沒有解決它。我們聯繫了Salesforce本身,並給了一些提示,但他們都沒有人似乎工作:

這是我們被告知。我沒有在Firebase中創建兩個項目並調整google-services.json文件,而是使用了一個項目中的發件人ID。在您的代碼中,您將Marketing Cloud初始化保持不變,並且google-services.json文件相同,只需更改呼叫 FirebaseInstanceId.getInstance()。getToken(); 至 FirebaseInstanceId.getInstance()。getToken(「158036016337」,「FCM」); 其中第一個參數是您的發件人ID(與您在Marketing Cloud初始化中使用的發件人ID相同),「FCM」是範圍。

這樣做的結果是,它返回了兩個不同的令牌,一個來自Firebase,另一個來自Marketing Cloud。兩個令牌都有一個11個字符的前綴,後跟一個相同的冒號。我發送推送使用這兩個令牌,都運作良好。然後,我訂購了Firebase 中的主題FirebaseMessaging.getInstance()。subscribeToTopic(「xxxxx」); 然後使用Firebase API向該主題發送推送,並且這也起作用。從Marketing Cloud發送了一些消息,這也起作用。我同意你應該測試這個。

+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); 
       } 
      }); 

否則我們處理它爲我們的應用程序火力地堡推送通知處理。