ios 发送APNs VoIP通知返回InvalidPushType [已关闭]

l5tcr1uw  于 2023-05-08  发布在  iOS
关注(0)|答案(1)|浏览(181)

**关闭。**此题需要debugging details。目前不接受答复。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答这个问题。
昨天关门了。
截至昨天,社会正在审查是否重新讨论这个问题。
Improve this question
我试图发送一个voip推送通知,但它的返回InvalidPushType,你可以看到在图像中。

我的代码用Curl PHP发出请求

if (defined("CURL_VERSION_HTTP2") && (curl_version()["features"] & CURL_VERSION_HTTP2) !== 0) {

     $device_token = "1302E8106AA322DE917B2D0F0FC4D656878F878E8E2FCEA9CEA153D3C80027C7";
     $body["aps"] = array(
        "alert" => "callIOS",
        "id" => "eabeae54-14a8-11e5-b60b-1697f925ec7b",
        "nameCaller" => "Hien Nguyen",
        "handle" => "0123456789",
        "isVideo" => true
     );

     $header[] = "apns-topic: ao.medicare.app";
     $header[] = "apns-expiration: 0";
     $header[] = "apns-priority: 10";
     $header[] = "apns-push-type: voip";
     $header[] = "Content-Type: application/x-www-form-urlencoded";
     $header[] = "apns-id: eabeae54-14a8-11e5-b60b-1697f925ec7b";

     $ch = curl_init();
     $url = "https://api.sandbox.push.apple.com/3/device/" . $device_token;
     curl_setopt($ch,CURLOPT_URL,$url);
     curl_setopt($ch,CURLOPT_POST, 1);             
     curl_setopt($ch,CURLOPT_HTTPHEADER, $header);
     curl_setopt($ch,CURLOPT_POSTFIELDS, json_encode($body));
     curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch,CURLOPT_SSLCERT, "VOIP.pem");
     curl_setopt($ch,CURLOPT_SSLCERTPASSWD, "");

     $response = curl_exec($ch);
     $err = curl_error($ch);

     print_r(json_decode($response));
     print_r(json_decode($err));
     curl_close($ch);
  } else {
     echo "No HTTP/2 support on client.";
  }

我正在跟踪官方文档here
编辑:我尝试在apns-topic(ao.medicare.app.voip)的末尾添加.voip,不起作用。

idfiyjo8

idfiyjo81#

从您链接到的文档:
VoIP:
如果您设置了此推送类型,apns-topic头字段必须使用您的应用的bundle ID,并在末尾追加.voip。
因此,必须将apns-topic指定为ao.medicare.app.voip

相关问题