Twilio - 通过向私人频道发送远程通知来邀请他们

时间:2016-09-07 05:31:50

标签: ios twilio

我正在尝试实施用于IP消息传递,视频对话,呼叫和短信的Twilio SDK。就要求而言,Twilio完全符合所有法案。但是,我们在通过向用户发送远程通知以加入频道来邀请用户访问私有频道时面临一些挑战。然而,我们搜索了这些文档,我们似乎没有得到一个文档句柄,它可以指出我们的问题陈述的解决方案。

步骤 -

  • 使用设备UUID

  • 请求令牌
  • 使用新生成的令牌

    创建IPMessagingClient实例
    let accessManager= TwilioAccessManager.init(token: token, delegate: self)  
    let client = TwilioIPMessagingClient.ipMessagingClientWithAccessManager(accessManager, properties: nil, delegate: self)
    
  • 在IPMessagingClient实例上调用registerWithToken

    ipMessagingClient.registerWithToken(deviceToken)
    
  • 如果用户想与其他用户聊天

    • 我们检查私人频道是否存在

      let availableChannel = channels?.channelWithUniqueName(defaultChannel)
      
    • 如果频道存在,我们让登录用户加入频道

      availableChannel.joinWithCompletion({ (result) in
                      if result.isSuccessful(){ ... }})
      
    • 如果频道不存在,那么我们创建新的私人频道

      let options: [NSObject:AnyObject] = [
          TWMChannelOptionFriendlyName: defaultChannel,
          TWMChannelOptionUniqueName: defaultChannel,
          TWMChannelOptionType: TWMChannelType.Private.rawValue
      ]  
      
      channels?.createChannelWithOptions(options, completion: { (result, channel) in
              if result.isSuccessful(){
                  channel.joinWithCompletion({ (result) in
                      if result.isSuccessful(){ ... }})
      
    • 一旦用户成功加入频道,我们会将邀请发送给其他用户加入同一频道。

      availableChannel.members.inviteByIdentity(other_user_name, completion: { 
          (result) in
              if result.isSuccessful(){ ... })
      
    • 然后我们等待AppDelegate中可用的didReceiveRemoteNotification触发。我们在其中有一段代码通过徽章或消息或声音显示通知。 <- problem Statement

这就是出现问题的地方,didReceiveRemoteNotification根本不会发射。

1 个答案:

答案 0 :(得分:1)

Twilio开发者传道者在这里。

您需要使用make sure you have notifications enabled for the IP Messaging service

目前您需要使用REST API执行此操作,但很快就会对Twilio console提供支持。

与此同时,以下是如何为频道邀请和新消息启用推送通知的示例:

curl -X POST https://ip-messaging.twilio.com/v1/Services/{service sid} \
 -d 'Notifications.NewMessage.Enabled=true' \
 -d 'Notifications.NewMessage.Template=A New message in ${CHANNEL} from ${USER}: ${MESSAGE}' \
 -d 'Notifications.InvitedToChannel.Enabled=true' \
 -d 'Notifications.InvitedToChannel.Template=${USER} has invited you to join the channel ${CHANNEL}' \
 -u '{twilio account sid}:{twilio auth token}'

只需在上面替换您的帐户SID,验证令牌和邮件服务SID即可。查看types of notification you can enable and notification templates in the documentation上的所有详细信息。