Merhaba, bir php projemde onesignal ile bildirim gönderme üzerinde çalışıyordum. Araştırmalarım sonucunda hatasız şekilde çalışan sistemimde, Abone ol penceresi sadece android, windows üzerindeki chrome tarayıcıları üzerinde geliyor. Buna ios,macOS cihazlarındaki chrome ve safariyi de dahil etmek istiyorum ancak bu kısımda yeterli bilgiye erişemedim. Onesignal ayarlarında SAFARI CERTIFICATE diye bir kısım var ancak oraya ios üzerinden alınmış bir sertifika dosyası gerekli sanırım. Bu konuda daha önce çalışması olmuş olan var ise destek verebilirse çok sevinirim.
Ek bilgi : kendi cihazım android olduğu için safari certificate alamıyorum, bu konuda destek verebilcek varsa sevinirim.
Konunun devamında yaptığım çalışmadan sizleri de bilgilendirmek istedim, destek kaynak olması açısından.
Aşağıya hali hazırda çalışan sistemimdeki kodları bırakıyorum, belki bazı arkadaşların işini görür bu haliyle.
1- Onesignale kayıt olduktan sonra yeni proje açıp Web Push Platforms > All Browsers >Typical Site üzerinden aşağıdaki gibi düzenlemeleri yapabilirsiniz.
Kodlarda yerleştirmek için gerekli olan keyleri bu sayfadan alacaksınız.
2- Sisteminizdeki header tagleri arasına onesignalin size verdiği kodları yerleştirin.
<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async=""></script>
<script>
window.OneSignal = window.OneSignal || [];
OneSignal.push(function() {
OneSignal.init({
appId: "Onesignal App Id - c7ec1350",
});
});
</script>3- Hangi sayfanız üzerinden otomatik bildirim göndermek istiyorsanız o sayfada bu kodu entegre edip kendi OneSignal App ID ve Rest API Key'inizi yerleştirin.
function sendMessage(){
$content = array(
'en' => 'bildirim açıklaması ',
'tr' => 'bildirim açıklaması'
);
$headings = array(
'en' => 'bildirim başlık',
'tr' => 'bildirim başlık'
);
$fields = array(
'app_id' => "OneSignal App ID buraya -4368-a82d-06a3c7ec1350",
'included_segments' => array('All'),
'data' => array("foo" => "bar"),
'contents' => $content,
'headings' => $headings,
'url' => 'https://bildirimeTiklayincaGidilecekAdres.com',
'chrome_web_image' => 'https://siteadresiniz.com.tr/images/services/bildirim_gorsel.png'
);
$fields = json_encode($fields);
print("\nJSON sent:\n");
print($fields);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://onesignal.com/api/v1/notifications");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8',
'Authorization: Basic Rest API Key buraya5LWE1ZjctZjhhYzkzZTJjMzUx'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
$response = sendMessage();
$return["allresponses"] = $response;
$return = json_encode( $return);
print("\n\nJSON received:\n");
print($return);
print("\n");4- Farklı cihazlarda sitenize girip abone olun, daha sonra ister bildirim gönderme kodunuzu çalıştırın isterseniz onesignal paneli üzerinden test bildirimi gönderin. Kolay gelsin.