没有从GCM CCS收回delivery_receipt_notification

时间:2015-07-03 19:11:46

标签: ios go google-cloud-messaging

我试图从CCS获得receipt,但我还是不能。

以下是我正在做的事情:

我有一个go脚本:

package main

import (
    "fmt"
    "github.com/brunohenrique/go-gcm/ccs"
)

var (
    user = struct {
        gcmToken string
    }{"mg0xe56LfjE:APA91bFHtHVQt85iNgyzTeDowovIGPAD_NbBjURppy1LgV9_oaM2R_9zn1fDXNuEeOoALTj7F8e8JmNPI3Md-CbbgTxdvxVrONFVfGz2dOujsaGkZjEhJcBH8sWvRNYZNIp2j2QliAEX"}
)


func main() {
    con := connect()


    // Sends a message
    con.Send(&ccs.OutMsg{
        To: user.gcmToken,
        ID: "m-1366082849205",
        Notification: map[string]interface{}{
            "title": "Hey!",
            "body": "There",
            "sound": "default",
        },
        TimeToLive: 600,
        DeliveryReceiptRequested: true,
        DelayWhileIdle: true,
    })


    // Listen to messages
    for {
        m, err := con.Receive()

        if err != nil {
            fmt.Printf(">>> Err: %+v \n", err)
        }

        go func(m *ccs.InMsg) {
            fmt.Printf(">>> InMsg: %+v \n", m)
        }(m)
    }
}

当我运行脚本时,一切似乎都没问题,但没有回复消息:

enter image description here

这就是我收到通知时我正在做的事情:

enter image description here

我做错了什么或遗失了什么?

2 个答案:

答案 0 :(得分:1)

感谢您在iOS上尝试GCM。 不幸的是,目前iOS上的显示通知无法使用送达回执。

答案 1 :(得分:0)

不确定您是否在Android或iOS上尝试此操作,因为它适用于Android,但它并不总是适用于iOS。

iOS的送达回执不适用于请求中的notification参数。我能够让它用于普通的data消息,即有效载荷

{
  "to" : <reg id>,
  "data" : {
    "hello" : "world",
    "id" : 123
  }
}

但如果我将notification有效负载添加到上面的有效负载中,它就无法工作。

我认为由于需要通过APNS发送notification有效负载消息,因此无法知道消息是否已发送,因为APNS未返回任何结果。

对于 notification消息,因为仅当应用程序位于前台时才会收到消息,因此他们可以验证消息是否已发送。