Odoo - Firebase Cloud Messaging Push Notification

dari Odoo ke Android dan IOS devices

Push notif message by default ada di Odoo versi Enterprise... gimana kalau community pingin punya push juga.. ?

Gunakan infrasruktur Google Firebase Cloud Messaging (FCM). Dengan FCM kita bisa kasi push notif ke aplikasi android dan IOS.

Contoh kasus misalnya ada Sales Order yang perlu di-confirm oleh manager, maka sales manager bisa dapat push notif secara realtime supaya bisa dia follow up dengan respon yang lebih cepat daripada nunggu email..


Ikuti langkah-langkahnya di bawah ini...

Registrasi API KEY FCM

Masuk ke https://firebase.google.com/ dan create project baru...

Coding di aplikasi android

Ikuti http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/ bab 1 sd 3 saja

Coding di addons

install pyfcm

ini modul python untuk mempermudah programming FCM.

ini contoh coding cara sending push:

def push_pyfcm_multi(self, to_regids, message_title, message_body, data=False):
     push_service = FCMNotification(api_key=API_KEY)
 result = push_service.notify_multiple_devices(registration_ids=to_regids,
 message_title=message_title,
  message_body=message_body)


API_KEY = API Key yang didapat dari Google FCM concole di atas... device android harus register ke API Key yang sama dengan sendernya.

to_regids = list dari REGISTRATION_ID FCM yang didapat oleh device android pada saat register ke FCM (lihat coding android).

message_title = baris pertama notifikasi

message_body = baris kedua notitikasi

data = custom data tambahan pada message, misalnya ID record yang perlu di fetch, nama tabel, dll...


Contoh tampilan notifikasi di Android seperti ini...
























Cara Penggunaan


Lanjut... cara inherit SO confirm untuk mengirim Push Message


from odoo import api, fields, models, _
class sale_order(models.Model):
    _name = 'sale.order'
_inherit = 'sale.order'

 @api.multi
 def action_confirm(self):
        res = super(sale_order, self).action_confirm()
 fcm_regids = [self.partner_id.fcm_regid]
 message_title = "SO Confirm"
 message_body = "SO %s need action" % self.name
 data = {'model':'sale_order', 'id': self.id}
 self.push_pyfcm_multi(fcm_regids, message_title, message_body, data)
 return res


Coding di atas, asumsinya pada res.partner kita sudah tambahin field fcm_regid yaitu ID registrasi FCM per masing-masing user pada saat login di android dan registrasi ke FCM.

Custom data, kita isi dengan dictionary yang isinya model 'sale_order' dan id dari sale order, sehingga android apps bisa buka activity Sale Order dengan ID yang sesuai ketika notifikasi di klik oleh user.



Ini salah satu materi training Odoo - Android Interfacing Techniques yang diselenggarakan di vitraining.com, klik events.vitraining.com untuk jadwal dan pendaftaran.