1

プッシュ通知を送信するためのプッシュ通知ライブラリを統合しました。ローカル マシンでテストしたところ問題なく動作しましたが、ライブ サーバーにライブラリ サンプル コードをアップロードするとエラーが発生しました。以下の応答を貼り付けました...この応答全体で実際のエラーを見つけたのは --> 'ERROR : メッセージ ID 1 を送信できません: ペイロード (4) がありません。この問題を解決するには助けが必要です。

Thu, 18 Apr 2013 12:58:29 +0200 ApnsPHP[17833]: INFO: Trying ssl://gateway.sandbox.push.apple.com:2195... 
Thu, 18 Apr 2013 12:58:30 +0200 ApnsPHP[17833]: INFO: Connected to ssl://gateway.sandbox.push.apple.com:2195.
Thu, 18 Apr 2013 12:58:30 +0200 ApnsPHP[17833]: INFO: Sending messages queue, run #1: 1 message(s) left in queue. 
Thu, 18 Apr 2013 12:58:30 +0200 ApnsPHP[17833]: STATUS: Sending message ID 1 [custom identifier: Message-Badge-33] (1/3): 45 bytes. 
Thu, 18 Apr 2013 12:58:30 +0200 ApnsPHP[17833]: ERROR: Unable to send message ID 1: Missing payload (4). 
Thu, 18 Apr 2013 12:58:30 +0200 ApnsPHP[17833]: INFO: Disconnected. Thu, 18 Apr 2013 12:58:30 +0200 ApnsPHP[17833]: INFO: Trying ssl://gateway.sandbox.push.apple.com:2195... 
Thu, 18 Apr 2013 12:58:30 +0200 ApnsPHP[17833]: INFO: Connected to ssl://gateway.sandbox.push.apple.com:2195. 
Thu, 18 Apr 2013 12:58:30 +0200 ApnsPHP[17833]: INFO: Sending messages queue, run #2: 1 message(s) left in queue. 
Thu, 18 Apr 2013 12:58:30 +0200 ApnsPHP[17833]: WARNING: Message ID 1 [custom identifier: Message-Badge-33] has an unrecoverable error (4), removing from queue without retrying... 
Thu, 18 Apr 2013 12:58:31 +0200 ApnsPHP[17833]: INFO: Disconnected. 

.

array(1) { [1]=> array(3) 
{ 
   ["MESSAGE"]=> object(ApnsPHP_Message)#3 (9) 
   { 
    ["_bAutoAdjustLongPayload:protected"]=> bool(true) ["_aDeviceTokens:protected"]=> array(1)
    { 
      [0]=> string(64) "FB7B2A31F06532EAD2973C1512A27A4F48FE22D9AFB9EE9F33B566B73A768935" 
    } 
   ["_sText:protected"]=> string(26) "Hello APNs-enabled device!" ["_nBadge:protected"]=> int(3) ["_sSound:protected"]=> string(7) "default" ["_bContentAvailable:protected"]=> NULL ["_aCustomProperties:protected"]=> array(2) 
  { 
    ["acme2"]=> array(2) { [0]=> string(4) "bang" [1]=> string(4) "whiz" } 
    ["acme3"]=> array(2) { [0]=> string(4) "bing" [1]=> string(4) "bong" } 
  }
  ["_nExpiryValue:protected"]=> int(30) ["_mCustomIdentifier:protected"]=> string(16) "Message-Badge-33" 
   } 
  ["BINARY_NOTIFICATION"]=> string(45) "QoÑô û{*1ðe2êÒ—<¢zOHþ"Ù¯¹îŸ3µf·:v‰5" ["ERRORS"]=> array(1) { [0]=> array(5) { ["command"]=> int(8) ["statusCode"]=> int(4) ["identifier"]=> int(1) ["time"]=> int(1366282710) ["statusMessage"]=> string(15) "Missing payload" 
   }
  }
 }
} 

前もって感謝します

PS: Google グループの誰かも同じ問題を投稿しましたが、解決策はありません。

4

1 に答える 1

5

テストの 1 日後、私は問題を特定しました: json_encode 関数は、5.3 PHP バージョンから 2 番目のパラメーター「オプション」を取ります: http://php.net/manual/en/function.json-encode.php

ローカルに PHP V5.3.x があるため、コードは json_encode 関数の 2 番目のパラメーターで正常に機能しました。しかし、ライブサーバーの PHP バージョンは 5.2.6 であるため、json_encode のコードの 2 番目のパラメーターが問題を引き起こし、「Missing Payload」エラーをスローします。2番目のパラメーターを削除しただけで、うまく機能します:)

于 2013-04-21T16:35:04.933 に答える