集成Exacttarget和FCM的问题

时间:2016-12-12 08:16:13

标签: android firebase-cloud-messaging exacttarget

我们正在同一个应用中集成两个新的通知SDK。 Firebase和Salesforce Marketing Cloud(以前称为ExactTarget)。

我们的IOS版本运行良好,未检测到干扰。我们从这两个工具发送通知。

但是,我们的Android版本存在问题。我们的一些测试设备的行为是:

  • 设备已在两个平台中正确注册
  • 设备接收没有明显问题的通知
  • 随着时间的推移,Salesforce营销云无法再通知设备。他们仍然在该平台内选择加入,并且ET尝试发送消息,但GCM响应时出现错误,
  

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

我们的猜测(我们做了很多测试)是GCM中令牌的变化产生了这些问题。我们尝试使用他们的方法Registration.getInstance().setSystemTokenInCache(token)每次更新(我们从Firebase获取)时将Salesforce推入新的令牌,到目前为止没有成功。

2 个答案:

答案 0 :(得分: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&#34); 并使用Firebase API向该主题发送了推送,并且也可以使用。从Marketing Cloud发送了一些推送,并且也有效。我同意你应该测试一下。

答案 1 :(得分:0)

我们以不同的方式解决了这个问题。我们强制在Firebase服务中接收通知(通过在清单中实施意图规则)。然后在return !(s.contains("..") || s.contains("__") || s.contains("._") || s.contains("_.")); 方法中,我们检查来自ExactTarget的通知是否为onMessageReceived()。如果这是真的,我们让Marketing云通过

处理它
PushMessageManager.isMarketingCloudPush(Bundle)

否则我们会将其作为我们应用的Firebase推送通知处理。