• 16-07-2022, 19:11:25
    #1
    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.
  • 19-07-2022, 09:59:00
    #2
    Buradaki en büyük soru şu aslında Otomatik Bildirim Göndermek bunu çözemedim ben bir zaman baya araştırmıştım. Sitemize üye olan kullanıcıların onay id ile üye Id eşleştirip otomatik bildirim göndermek. Örnek Sorunuza cevap yazıldı, Mesaj geldi gibi.
  • 19-07-2022, 10:02:06
    #3
    Sitemizde üyelik olsaydı böyle bir çözüm yolu düşünülebilirdi evet ancak sitemiz bir bilgilendirme, blog sitesi. Üyelik olmadığı için web push bildirimi ile ancak bildirim gönderebilirim diye düşündüm.
  • 19-07-2022, 10:06:16
    #4
    Anladım konudan ben bunu merak ettiğim için sorayım dedim belki bilginiz vardır ya da bir yerde görmüşsünüzdür diye.

    rslprlt adlı üyeden alıntı: mesajı görüntüle
    Sitemizde üyelik olsaydı böyle bir çözüm yolu düşünülebilirdi evet ancak sitemiz bir bilgilendirme, blog sitesi. Üyelik olmadığı için web push bildirimi ile ancak bildirim gönderebilirim diye düşündüm.