Score:0

วิธีกำหนดค่าฟิลด์ส่วนหัวสำหรับ APNs Provider API ใหม่

ธง uz

ฉันพยายามย้ายไปที่ใหม่ API ผู้ให้บริการ APN.

ก่อนการย้าย ฉันเคยใช้สคริปต์นี้เพื่อส่งการแจ้งเตือนแบบพุชทดสอบไปยังอุปกรณ์ทดสอบของฉัน

<?php
// ใส่โทเค็นอุปกรณ์ของคุณที่นี่ (ไม่มีช่องว่าง):
$deviceToken = 'b5fa6af3eb6482ffa5d8551a0dcca76a780dcfc9662fbc7163a56d0973de8a9f';
// ใส่ข้อความรหัสผ่านของคีย์ส่วนตัวของคุณที่นี่:
$passphrase = 'พุชแชท';
// ใส่ข้อความแจ้งเตือนของคุณที่นี่:
$message = 'สวัสดี!';
//////////////////////////////////////////////////////// /////////////////////////////////
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
stream_context_set_option($ctx, 'ssl', 'ข้อความรหัสผ่าน', $ข้อความรหัสผ่าน);
// เปิดการเชื่อมต่อกับเซิร์ฟเวอร์ APNS
$fp = stream_socket_client(
'ssl://api.sandbox.push.apple.com:443', $ผิดพลาด,
$errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
ถ้า (!$fp)
exit("ไม่สามารถเชื่อมต่อ: $err $errstr" . PHP_EOL);
echo 'เชื่อมต่อกับ APNS' แล้ว PHP_EOL;
// สร้างเนื้อความเพย์โหลด
$body['aps'] = อาร์เรย์(
'alert' => $ข้อความ
'เสียง' => 'ค่าเริ่มต้น'
);
// เข้ารหัสเพย์โหลดเป็น JSON
$payload = json_encode($body);
// สร้างการแจ้งเตือนไบนารี
$msg = chr(0) . แพ็ค('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $น้ำหนักบรรทุก;
// ส่งไปยังเซิร์ฟเวอร์
$result = fwrite($fp, $msg, strlen($msg));
ถ้า (!$ ผล)
echo 'ส่งข้อความไม่ได้' PHP_EOL;
อื่น
echo 'ส่งข้อความสำเร็จ' PHP_EOL;
// ปิดการเชื่อมต่อกับเซิร์ฟเวอร์
fclose($fp);

ตาม การส่งคำขอการแจ้งเตือนไปยัง APNตอนนี้มีความจำเป็น ฟิลด์ส่วนหัว ชอบ กระบวนการ และ เส้นทาง.

เมื่อฉันคัดลอกและวางส่วนหัวจาก การส่งคำขอการแจ้งเตือนไปยัง APN การตอบสนองของเทอร์มินัลคือ ข้อผิดพลาดในการแยกวิเคราะห์ PHP: ข้อผิดพลาดทางไวยากรณ์, โทเค็นที่ไม่คาดคิด ":" ใน /Users/Desktop/simple push folder/simplepush.php ในบรรทัดที่ 6

<?php
ส่วนหัว
- END_STREAM
+ END_HEADERS
: วิธีการ = โพสต์
:scheme = https
:path = /3/device/EXAMPLETOKEN
โฮสต์ = api.sandbox.push.apple.com
apns-id = eabeae54-14a8-11e5-b60b-1697f925ec7b
apns-push-type = แจ้งเตือน
apns-หมดอายุ = 0
apns-priority = 10
ข้อมูล
+ END_STREAM
{ "aps" : { "alert" : "สวัสดี" } }

// ใส่โทเค็นอุปกรณ์ของคุณที่นี่ (ไม่มีช่องว่าง):
$deviceToken = 'ตัวอย่าง'; // ใส่ข้อความรหัสผ่านของคีย์ส่วนตัวของคุณที่นี่:
$passphrase = 'พุชแชท';
// ใส่ข้อความแจ้งเตือนของคุณที่นี่:
$message = 'สวัสดี!';
//////////////////////////////////////////////////////// /////////////////. /////////////
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
stream_context_set_option($ctx, 'ssl', 'ข้อความรหัสผ่าน', $ข้อความรหัสผ่าน);
// เปิดการเชื่อมต่อกับเซิร์ฟเวอร์ APNS
$fp = stream_socket_client(
'ssl://api.sandbox.push.apple.com:443', $ผิดพลาด,
$errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
ถ้า (!$fp)
exit("ไม่สามารถเชื่อมต่อ: $err $errstr" . PHP_EOL);
echo 'เชื่อมต่อกับ APNS' แล้ว PHP_EOL;
// สร้างเนื้อความเพย์โหลด
$body['aps'] = อาร์เรย์(
'alert' => $ข้อความ
'เสียง' => 'ค่าเริ่มต้น'
);
// เข้ารหัสเพย์โหลดเป็น JSON
$payload = json_encode($body);
// สร้างการแจ้งเตือนไบนารี
$msg = chr(0) . แพ็ค('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $น้ำหนักบรรทุก;
// ส่งไปยังเซิร์ฟเวอร์
$result = fwrite($fp, $msg, strlen($msg));
ถ้า (!$ ผล)
echo 'ส่งข้อความไม่ได้' PHP_EOL;
อื่น
echo 'ส่งข้อความสำเร็จ' PHP_EOL;
// ปิดการเชื่อมต่อกับเซิร์ฟเวอร์
fclose($fp);

วิธีที่ถูกต้องในการใช้ฟิลด์ส่วนหัวเหล่านี้กับสคริปต์นี้เพื่อให้สามารถส่งการแจ้งเตือนแบบพุชทดสอบได้คืออะไร

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา