PHP सफ़ारी PushNotifications "निष्कासन पुश अधिसूचना पैकेज विफल"

Nov 26 2020

मैं सफारी सूचनाओं को लागू करने की कोशिश कर रहा हूं और मेरे पास ज्यादातर चीजें हैं। मैं आधिकारिक ट्यूटोरियल का अनुसरण कर रहा हूंhttps://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/NotificationProgrammingGuideForWebsites/PushNotifications/PushNotifications.html#//apple_ref/doc/uid/TP40013225-CH3-SW1 लेकिन मैं वर्तमान में त्रुटि प्राप्त कर रहा हूं:

पुश सूचना पैकेज को निकालना विफल रहा

मैंने इस विषय को APN "पुश नोटिफिकेशन पैकेज निकालने में विफल" देखा है, लेकिन ऐसा लगता है कि व्यक्ति को कोई प्रतिक्रिया / समाधान नहीं मिला।

इस त्रुटि से पहले, मुझे "पुश पैकेज का हस्ताक्षर सत्यापन विफल हो रहा था।" लेकिन मैं इस समस्या को हल करने में मदद करता हूं, Apple वेबसाइट पुश: पुश पैकेज का हस्ताक्षर सत्यापन विफल रहा, लेकिन Apple प्रमाणपत्र ठीक हैं और नवीनतम Apple प्रमाण पत्र को PEM में डाउनलोड / परिवर्तित करकेhttps://www.apple.com/certificateauthority/AppleWWDRCAG3.cer

Website.json में निम्नलिखित डेटा हैं:

{
    "websiteName": "hello",
    "websitePushID": "web.com.hello",
    "allowedDomains": ["https://hello.com"],
    "urlFormatString": "https://hello.com/%@",
    "authenticationToken": "01sSggkfAAAqq1seeF0gglzzg",
    "webServiceURL": "https://hello.com"
}

मैनिफ़ेस्ट .json में निम्न डेटा है:

{
   "icon.iconset\/icon_16x16.png":{
      "hashType":"sha512",
      "hashValue":"d7366c75a9ad9a95ee2e6c6a4642ab6150d01986a870d8726e988c180e373cce7cbda1496150def585fb05e5b82d9753fabbe03e1e5bf56fce1c94a472bee50b"
   },
   "icon.iconset\/[email protected]":{
      "hashType":"sha512",
      "hashValue":"63287459ef021a8d3fe6a7ee40292446dddea305382713f25e8ff3f40b17d706012c809ebe6238a3652992ba55007f8dd22707b31f4730efc4b9d33baaca593d"
   },
   "icon.iconset\/icon_32x32.png":{
      "hashType":"sha512",
      "hashValue":"407027a704b967e57999d45ea68f2ccd156b49c698a4237ac8e60101f4c79388cbebf7242ac93c911f0176da49a49d12c5eec0f303943ea8f0d99f5d27898d21"
   },
   "icon.iconset\/[email protected]":{
      "hashType":"sha512",
      "hashValue":"a799fc64879d0d0304eb20b1bb96fe1c1b837e1cbc2d905ad3024b3230337d9f2a6ea41a73b02e91168b97fce13dd918f380d95ccd77ef1360e0bb818de8be99"
   },
   "icon.iconset\/icon_128x128.png":{
      "hashType":"sha512",
      "hashValue":"e709cbce5e4b4f355a4007a5665ad3b1b020ba81640fbed09db252910c20b956eab6167ae6a3e399b4b1f9ff1cf8eb4d68de844dd01a39d23fff15b3418ab6c5"
   },
   "icon.iconset\/[email protected]":{
      "hashType":"sha512",
      "hashValue":"1d210614b556267b6d41e1b7ad5d09db90ba77cab2196b85b7bc211873f03ebe3a89a0cf083b61181af0fa6900ba6eb8394f86e4921432a9779fb419c1def7ce"
   },
   "website.json":{
      "hashType":"sha512",
      "hashValue":"2c050ffb570fab3c4224ad2f08144f4ca9bf09d570f22bf3dc3cabf7c5146e436755bf171befcfa410d8f56ac4135b1e03b235197feed6306c5692b793b41668"
   }
}

मेरा फ़ोल्डर जिसे "पुशपेकेज" कहा जाता है:

  • website.json
  • manifest.json
  • हस्ताक्षर
  • icon.iconset folder> 6 चित्र

हालाँकि प्रलेखन कहता है:

एपीआई का संस्करण। वर्तमान में, 'v2'

सफारी के अनुरोध समापन बिंदु में किए जा रहे हैं https://hello.com/v1/pushPackages/web.com.hello, जो अजीब तरह का है, लेकिन ..

अंत में, POST समापन बिंदु ने कहा, ट्रिगर:

header('Content-type: application/zip');
header('Content-Disposition: attachment; filename="pushpackage.zip"');

echo file_get_contents($file);

ज़िप ठीक लगता है - कम से कम जब मैं सभी फाइलें खोलता हूं तो सही ढंग से संरचित होती है, लेकिन मैं इस बारे में विचारों से बाहर हूं कि ज़िप फ़ाइल में क्या गलत हो सकता है। कोई विचार?

जवाब

Linesofcode Nov 27 2020 at 17:43

हल किया हुआ

मेरे कोड में कई चीजें गलत थीं।

  1. त्रुटि:

पुश सूचना पैकेज को निकालना विफल रहा

echo ...ज़िप फ़ाइल बनाते समय कोड के बीच में एक कारण था ।

  1. त्रुटि:

पुश पैकेज का हस्ताक्षर सत्यापन विफल रहा

कई कारकों के कारण हुआ था:

  • मेरा .p12 सर्टिफिकेट गलत था, .p12 Website Push IDमेरा website.jsonऔर न ही जावास्क्रिप्ट कोड से मेल नहीं खाता था । आदेश का डेटा डिबग / देखने के लिए मैंने कमांड का उपयोग कियाopenssl -nokeys -info -in certificate.p12 -passin pass:
  • प्रमाणपत्र AppleWWDRCAG3.cer (जो कि 2030 में समाप्त हो रहा है) के लिए andial लिंक से https://developer.apple.com/support/expiration/काम नहीं करता है। मुझे AppleWWDRCA.cer (2023 में समाप्त होने वाली) फ़ाइल डाउनलोड करनी थीhttps://developer.apple.com/certificationauthority/AppleWWDRCA.cer
  • मेरे आइकन 72dpi रिज़ॉल्यूशन में नहीं बनाए गए थे
  • अनुमतियों का अनुरोध करने के लिए सफारी द्वारा उपयोग किया जाने वाला संस्करण 1 "v1 / pushPackages .." संस्करण है और मैं manifest.jsonसंस्करण 2 के साथ ज़िप फ़ाइल बना रहा था