未收到Twilio聊天推送通知(Ionic和Firebase)

3duebb1j  于 2023-08-01  发布在  Ionic
关注(0)|答案(2)|浏览(148)

我遇到了一个问题,我已经尝试调试了几天,失去了希望。我有一个带有Firebase后端的Ionic移动的应用程序。我正在写一篇Twilio的聊天。我现在正试着让它在iOS上运行。这是我目前所做的:
1.我在Apple开发者帐户中创建了一个APN身份验证密钥。(我还使用APN证书对此进行了测试)
1.我已经将APN验证密钥添加到Firebase控制台。(我还使用APN证书对此进行了测试)
1.我测试了从Firebase控制台发送推送通知,我能够成功地获得它。到目前为止没有问题。
1.然后,我将FCM密钥添加到Twilio中。
1.使用Ionic Firebase SDK(https://github.com/dpa99c/cordova-plugin-firebasex)配置我的Ionic应用程序以获取FCM令牌。在获得FCM令牌之后,我将FCM令牌传递给Twilio。
1.已将Ionic应用程序配置为在收到通知时处理通知。
1.已尝试发送聊天消息。未收到通知。当我打开应用程序时,我可以看到Firebase SDK正确地记录了通知。
应用程序未打开时,为什么我没有收到通知?这个逻辑显然是有效的,因为当我打开应用程序时,Firebase SDK确实收到了通知。它似乎也没有任何应用程序设置的问题,因为我能够得到通知时,应用程序在后台时,直接从Firebase发送通知。
下面是生成Twilio访问令牌的后端代码:

// Twilio credentials and ids are defined here...

    const chatGrant = new ChatGrant({
        serviceSid: twilioServiceSid,
        pushCredentialSid: credentialSid
    });

    const token = new AccessToken(twilioAccountSid, twilioApiKey, twilioApiSecret, {
        identity: uid
    });

    token.addGrant(chatGrant);
    return token.toJwt();

字符串
这是我的Ionic代码片段,它从设备获取FCM令牌并将其传递给Twilio

async getToken(): Promise<string> {

  let token: string;

  if (this.platform.is('ios')) {
    const hasPermission = await this.firebaseNative.hasPermission();

    if (!hasPermission) {
      try {
        await this.firebaseNative.grantPermission();
      } catch (e) {
        console.error('Error granting permission', e);
        throw e;
      }
    }

    try {
      token = await this.firebaseNative.getToken();
    } catch (e) {
      console.error('Error getting FCM token', e);
      throw e;
    }

  }

  return token;
}

setPushRegistrationId(token: string) {
    return this.twilioClient.setPushRegistrationId('fcm', token);
}

getToken().then(async (token) => {
    console.log('fcm token: ' + token);
    setPushRegistrationId(token)
        .then(() => console.log('Added registration token'))
        .catch(e => console.error('Error registering fcm token', e));

}).catch(e => {
    console.error('Error getting FCM token', e);
    console.error(e);
});


救命啊!谢谢你的好意😊

ff29svar

ff29svar1#

我最近发现Twilio只为FCM发送数据推送。这意味着您需要处理后台推送,并决定是否在本地显示它们。

wnrlj8wa

wnrlj8wa2#

在setPushRegistrationId方法中使用“apn”而不是“fcm”在Twilio上注册。参考URL:https://sdk.twilio.com/js/conversations/releases/2.1.0/docs/modules.html#NotificationsChannelType

相关问题