Thursday, December 18, 2014

Integrasi Apple Push Notification services (APNs) dengan library Javapns

Apple Push Notification services
Apple Push Notification services (APNs) merupakan layanan cloud untuk mengirimkan pesan kepada perangkat mobile yang berbasis iOS, mirip seperti Google Cloud Messaging (GCM) yang juga berfungsi untuk mengirimkan pesan kepada perangkat mobile yang berbasis Android OS.

Javapns
Javapns merupakan library yang dapat digunakan oleh programmer Java untuk mempermudah mengirimkan pesan kepada perangkat mobile yang berbasis iOS.

Integrasi Javapns
Beberapa langkah yang perlu dilakukan untuk dapat menggunakan library Javapns.
  1. Download terlebih dahulu dari sini.

  2. Masukan library tersebut kedalam CLASSPATH aplikasi, supaya class-class yang ada didalamnya dapat digunakan.

  3. Buat certificate PKCS12 dari certificate private key PKCS12 dan certificate CERT yang di-download dari Apple.
    • Misal : developer_identity.cer (di-download dari Apple)
    • Misal : mykey.p12 (private key PKCS12)
    • Jalankan perintah-perintah ini dari terminal / shell
    openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM
    openssl pkcs12 -nocerts -in mykey.p12 -out mykey.pem
    openssl pkcs12 -export -inkey mykey.pem -in developer_identity.pem -out iphone_dev.p12

  4. File iphone_dev.p12 akan digunakan untuk berkomunikasi dengan server APNs.
Source Code
Setelah mendapatkan certificate untuk berkomunikasi dengan server APNs, diperlukan juga device token untuk test ketika mengirimkan pesan kepada perangkat mobile tersebut. Bagaimana cara mendapatkan device token dapat dibaca di-sini.

Setelah mendapatkan device token, lalu saatnya kita code :)


//--------POTONGAN KODE-----------

import javapns.Push;
        
public class PushTest { 
   public static void main(String[] args) {       
      Push.alert("Hello World!", "iphone_dev.p12", "pass-nya", false, "device_token-nya");
   }
}

//--------POTONGAN KODE-----------


Potongan kode diatas merupakan contoh sederhana untuk mengirimkan pesan "Hello World!" kepada perangkat mobile yang memiliki device token "device_token-nya" menggunakan method alert. Argumen parameter ke-empat pada method alert berfungsi untuk membedakan message yang dikirim melalui environment production (true) atau sandbox (false).



//--------POTONGAN KODE-----------

LOGGER.info("Start push message to APN Server");

PushNotificationPayload payload = new PushNotificationPayload();
try {
      payload.addSound("default");
      payload.addAlert("Pesan berantai dari sini");
      payload.addCustomDictionary("property1", "nilai 1");
      payload.addCustomDictionary("property2", "nilai 2");
      payload.addCustomDictionary("property3", "nilai 3");
      payload.addCustomDictionary("property4", "nilai 4");
 
      PushedNotifications pushedNotifications = 
       Push.payload(payload, "iphone_dev.p12", "pass-nya", false, "device_token-nya");

      LOGGER.info("End push message to apple customer, response from apn server : " + pushedNotifications.toString());
} catch (JSONException e) {
      e.printStackTrace();
}

//--------POTONGAN KODE-----------


Sedangkan potongan kode yang diatas ini, merupakan contoh untuk mengirimkan pesan dengan custom payload yang dapat disesuaikan dengan keinginan kita.

Ok, sekian blog kali ini, semoga membantu anda. :)

No comments:

Post a Comment