The Way Of Life
Google

Monday, November 20, 2023

Aplikasi untuk Mengirim Pesan WhatsApp Otomatis

Kali ini saya akan sharing tentang bagaimana cara untuk mengirim pesan WhatsApp secara otomatis menggunakan aplikasi yang kita buat sendiri. Ada banyak cara yang bisa anda temukan di internet. Artikel yang saya tulis ini adalah salah satu caranya dan sudah saya buktikan berhasil.

Langkah langkahnya antara lain :

  1. Proses pengambilan data. Pada proses ini ada beberapa cara, antara lain menggunakan koneksi ke database langsung atau menggunakan API ( Application Programming Interface). Cara yang terakhir ini biasanya dipergunakan jika kita mengakses sistem yang dibuat oleh orang/pihak lain.
  2. Proses pengolahan data. Pada proses ini data yang sudah diterima harus diolah dahulu. Misal dalam tema kali ini adalah pengiriman pesan. Maka data mentah yang berupa misal nama,  alamat dan nomor telepon, perlu ditambah kalimat pesan sesuai dengan kebutuhan yang diinginkan.
  3. Proses pengiriman pesan. Pengiriman pesan WA untuk broadcast khususnya saat ini dimungkinkan melalui API yang disediakan rekanan WhatsApp yang ada di indonesia. Untuk saat ini karena kebetulan saya menggunakan produk dari Maxchat. Bukan karena saya ingin mempromosikan maxchat.

IMPLEMENTASI

Karena kebetulan aplikasi yang saya buat adalah menarik data dari sistem pihak lain, maka saya menggunakan API yang telah disediakan oleh vendor. Aplikasi yang saya buat adalah aplikasi Notifikasi WA di sebuah sekolah internasional. Aplikasi ini mengirimkan data ke orang tua murid jika salah satu anaknya masuk ke klinik di sekolah karena sudah hal.

  1. Proses memanggil fungsi API ke Skyward ( Sistem Informasi Akademik yang digunakan sekolah tersebut) saya kebetulan menggunakan bahasa pemogramaman Microsoft Visual Basic. Sebenarnya dengan bahasa pemrograman apa saja juga memungkinkan asal ada fungsi HTPP Request. Proses ini biasanya memerlukan beberapa parameter yaitu, alamat URL, user, password dan token. Ada bisa membaca detail-nya di tulisan saya sebelumnya disini.
  2. Pengolahan data. Setelah data diterima aplikasi (biasanya dalam bentuk JSON ) melalui http request yaitu berupa field student id, student name, status orang tua ( Ayah, Ibu, Guardian, Lain-nya ), Nama Ayah, nomor HP Ayah, Nama Ibu nomor HP Ibu, Nama Guardian, Nomor HP Guardian, Kelas, Tanggal Transaksi, Alasan masuk klinik, treatment, comment, dsb.  Maka perlu ditambahkan pesan tambahan agar pesan enak dan layak dibaca oleh orang tua murid yang nantinya akan menerima pesan WA. Juga untuk penyimpanan data ke database (MySQL/MariaDB) untuk mencatat error log serta mengecek apakah pesan tersebut sudah dikirim atau belum sehingga tidak ada duplikasi pengiriman pesan WA. 
  3. Proses pengiriman data. Kebetulan saya menggunakan API WA dari Maxchat. Sebanarnya ada banyak vendor rekanan WA di Indonesia selain Maxchat. Hanya karena kebetulan saya menggunakan API dari Maxchat maka fitur fitur dari Maxchat yang akan saya bahas. Parameter yang akan diperoleh dari maxchat adalah url endopoint untuk API.

Jika anda sudah mendaftar di maxchat maka anda akan mendapatkan link URL dan authorization key, lalu dokumentasi API yang bisa anda explore. Contoh link ada di bawah ini.

URL : https://core.maxchat.id/ nama-perusahaan /api/messages?skipBusy=true

Authorization : passkey

Dokumentasi : https://core.maxchat.id/nama-perusahaan/docs

  

Contoh format pesan text yang dikirim dalam bentuk JSON:

 {

"to":"0810000000000",

"type":"text",

"text":"Dear, *Mr. xxxx*\n \nWe would like to inform you that *Your Son* has visited school clinic.\n \nDate: 00 Nov 2023\nTime: 07:48:32 am\nOffice Visit Reason(s): Runny Nose\nTreatment(s): Apply Vicks VapoRub\nDisposition(s): Return to Class\nExamined By: Nurse \nComment: \nNotes: \n \n \nThank You.\n School Name \nFor further information please contact the school admin at\nhttps://wa.me/628200000000\n*This is an automated message - do not reply*",

"useTyping": true

}

Di maxchat juga disediakan fitur untuk mengecek apakah sebuah nomor wa aktif atau tidak dengan URL API : https://core.maxchat.id/nama-perusahaan/api/check?phone=081000000000'


Dengan respon balik exists  : true (artinya nomornya Aktif)  / false (Nomornya tidak aktif)

Juga karena ini adalah sebuah sekolah, maka tidak setiap waktu aplikasi ini aktif, program akan mulai aktif jam 7.30 pagi dan non aktif atau "tidur" jam 17.00, pada jam 12.00 siang hanya untuk mengecek bahwa program ini masih aktif berjalan saja. Pesan WA biasanya dikirim ke admin untuk mengetahui program masih berjalan atau error karena banyak sebab.

Demikian gambaran jika anda ingin membuat aplikasi notifikasi WA menggunakan bahasa pemogroman apapun dan API WA dari vendor apapapun karena pada intinya prosesnya akan sama.

Semoga bermanfaat.

 

Software :

Microsoft Visual Basic 6.0

MySQL / MariaDB

WhatsApp

Operating System : Windows 10

API Data : Skyward

API WA : Maxchat

Related links:

API Call Using Visual Basic 6 (JSON Response)

How to Make WhatsApp Office Visit / Clinic Notification on Skyward


Labels: , , , ,

Sunday, April 09, 2023

How to Make WhatsApp Office Visit / Clinic Notification on Skyward


As we know, until this article has been released. On Skyward, we are unable to make notifications through WhatsApp. Like Office Visit / Clinic Notification, Skyward only has e-mail notification. And the good news is, today I will share, how to make Office Visit Notification through WhatsApp using Skyward API and WhatsApp API.

First, you have to download Qmlative SDK from Skyward. If you have not used the Qmlativ SDK Explorer, you can download it by going to the Partner Portal, navigating to Documentation, clicking on Qmlativ, choosing "C# SDK", then choosing "Download" and then clicking the "Click here to download" link.  Once you have downloaded and extracted the .zip file, open up the folder and find the "QmlativSDKExplorer.exe.config" file and replace the following values:

  1. BaseUrl : this should be the API Url that you are using to connect
  2. Key : this should be your client key
  3. Secret : this should be your client secret

Once you've done that save and close the config file, then run the QmlativSDKExplorer.exe file.  Once it launches, simply click "Explore", and you should see something like the following image.

In the box on the left, expand the "Health" node, then scroll down to the "NameOfficeVisit" node and expand it, then expand the "Fields" node, and select each of the fields that you would want to include in the response from that object (note: there may not be many from this object that you're actually interested in at this time).  Scroll a little further down to the "Relationships" node and expand that node, and you will see all the relationships available to the NameOfficeVisit object, such as "Name", expand the nodes that you are interested in pulling data from, and you will notice that they, too, have "Fields" and "Relationships" nodes under them.  Also note, the grayed out nodes are not unavailable, they are usually relationships that will tend to create cartesian products if they are used, so they are not recommended.

Or you can download my xml saved items setting here.

It’s important to save your selected item to generate query on Qmlativ SDK because Skyward have maybe a hundred or thousand fields on the database and connections for sure. From my experience, it is hard to remember the selected field and intuitively choose the correct field. that’s why saving your selected fields is really important.

Skyward Qmlative SDK Explorer

Choosing your selected field on the SDK Explorer.

  • Health
    • NameOfficeVisit
      • Fields
        • NameOfficeVisitID
        • CreatedTime
        • EntityID
        • NameID
      • Relationships
        • Name
          • Demographics.Name
            • Fields
              • FirstName
              • LastName
              • ...

After you have done with the selected field. You can scroll all the way back up to the "NameOfficeVisit" node, and select it (don't uncheck it), and you should see a "Preview Data" button on the right-side of the screen. When you click that "Preview Data" button you will notice that it will open a screen allowing you to preview the data, but it will also add an entry to the bottom panel of the original window with a GET request that you can copy (though it doesn't scroll to the right, so you will want to copy the line and the line below to make sure you get everything).

https://skyward.iscorp.com/yourbaseurlAPI/custom/1/Health/NameOfficeVisit/1/250?searchFields%5B0%5D=NameOfficeVisitID&searchFields%5B1%5D=CreatedTime&searchFields%B2%5D=EntityID&searchFields%5B3%5D=NameID&searchFields%5B4%5D=Name.FirstName&seachFields%5B5%5D=Name.LastName&searchFields%5B6%5D=Name.Student.PrimaryStudentFamily.PrimaryStudentGuardian.NameGuardian.PrimaryNamePhone.PhoneNumber

Using that information, you can then translate it into your POST request by copying the search fields over to your query fields for your POST.  The only thing I would recommend is taking off the "%5B" and "%5D" after the "searchField" as it is unnecessary. But if you still using that code, it will still work, but just makes your query unnecessarily longer.


Now, with postman you can test the link to query data.

API Call Testing - postman

Don't forget to filter the result, for example only today's office visit transaction. you must add some code on the body request like code below.

{

    "SearchSort": [

    {

        "FieldName": "CreatedTime",

        "DocumentationIsComplete": true,

        "Descending": false

    }],

    "SearchCondition": {

        "DateTimeSearchCondition": {

            "ConditionType": "Greater",

            "FieldName": "CreatedTime",

            "Value": "2023-03-29T00:00:00"

        }

    }

}


Then in my project, I’m using Visual Basic 6 to connect with WA API from the provider. The paramater that I’ve used are :

  1. API URL
  2. Authorization 

You can download my code about API Call Using Visual Basic 6 here

And here is the code for call WA API.

url = "https://demo.waapi.id/demo1/api/chats/6281000000000(yourdestinationwanumber)/messages?direct=false"

xmlhttp.Open "POST", url, False

message= "Dear, " + "*" + GridResult.TextMatrix(1, 10) + "*" + "\n"

message = message + " " + "\n"

message = message + "We would like to inform you that " + "*" + GridResult.TextMatrix(1, 3) + "*" + " has visited school clinic." + "\n"

message = message + " " + "\n"

message = message + "Office Visit Reason(s): " + GridResult.TextMatrix(1, 5) + "\n"

message = message + "Treatment(s): " + GridResult.TextMatrix(1, 6) + "\n"

message = message + "Disposition(s): " + GridResult.TextMatrix(1, 4) + "\n"

message = message + "Examined By: " + GridResult.TextMatrix(1, 7) + "\n"

message = message + "Comment: " + GridResult.TextMatrix(1, 8) + "\n"

message = message + " " + "\n"

message = message + " " + "\n"

message = message + "Thank You." + "\n"

message = message + "Your School Name"


'create the body of the POST

sentitybody = "{" + vbCrLf + """text""" & ":""" & message + """" + vbCrLf + "}"


xmlhttp.setRequestHeader "Authorization", "Bearer" & " " & "8jRuDTXCwqqeqwewqkbVdfsderwr"

xmlhttp.setRequestHeader "Content-Type", "application/json"

Visual Basic WhatsApp Clinic Notification

The Image below is the result of the WhatsApp Clinic Notification.


Clinic WhatsApp Notification


Software :

Microsoft Visual Basic 6.0

Postman

WhatsApp API

Skyward Qmlative SDK

Skyward

related links:

Aplikasi untuk Mengirim Pesan WhatsApp Otomatis

Labels: , , ,

Tuesday, March 02, 2021

Struktur Database Aplikasi WhatsApp


Mungkin kita sering atau bukan sering lagi, hampir setiap hari kita menggunakan aplikasi WhatsApp di Smartphone kita. Tetapi apakah terpikir bagaimana Struktur Table dalam database aplikasi WhatsApp. Kali ini saya mencoba riset kecil kecilan untuk membuat tulisan mengenai struktur database aplikasi WhatsApp dengan menggunakan acuan dari  tampilan aplikasi WA di web ( WhatsApp Web )

Berikut Tabel Tabel yang dipakai :

USER

  • ID ( Nomor WhatsApp)
  • Name ( Nama  )
  • About ( Keterangan / About )
  • PhotoProfilePath ( path untuk  photo profile )


BLOCKED

  • ID ( Nomor WhatsApp )
  • IDBlocked ( Nomor ID  yang diblock)


ID, Sender, Message, Datetime, ReadStatus, GroupID ( if from WA Group),StarredStatus, MediaLinksDocPath


MESSAGE

  • ID ( Nomor WhatsApp )
  • SenderID ( Nomor WhatsApp Pengirim Pesan )
  • Message ( Isi Pesan )
  • DateTime ( Tanggal dan Jam Pesan )
  • ReadStatus ( Status pesan sudah dibaca )
  • GroupID ( ID Group WhatsApp )
  • StarredStatus ( Status Penanda Starred Message )
  • MediaLinksDocsPath ( Path File Video, Gambar, Dokumen dan Links )

GROUPWA

  • ID ( Nomor WhatsApp )
  • GroupID ( Kode Group )
  • GroupName ( Nama Group )
  • DateTime ( Tanggal dan Waktu Group dibuat )
  • GroupDesc ( Deskripsi / Keterangan Group WA )
  • IDParticipant ( ID WA Anggota Group )

Master Table Setting

Setting Table WhatsApp Web

MASTER SETTING

  • ID : Nomor WhatsApp
  • IDSetting : Kode Setting
  • NameSetting : Nama Setting
MASTER SUB SETTINGS
  • ID ( Nomor WhatsApp )
  • ParentIDSetting ( Kode Setting Induk )
  • IDSubSetting ( Kode Sub Setting )
  • SubSettingName ( Nama Sub Setting )

SETTINGS

  • ID ( Nomor WhatsApp )
  • IDSetting (Kode Setting )
  • SettingValue ( Nilai Parameter Setting )

CONTACT

  • ID ( Nomor WhatsApp )
  • ContactID ( Nomor Kontak WhatsApp )
  • ContactName ( Nama Kontak )
  • MuteNotifStatus ( Nilai Status Mute Notification )


Di atas merupakan gambaran struktur database yang bisa saya "ekstrak" dari tampilan aplikasi WhatsApp Web. Jika ada koreksi, atau tambahan silakan komen di kotak komentar bawah.

Semoga bermanfaat.

 

Labels: , , ,

Saturday, September 29, 2018

Akankah Facebook bernasib sama seperti Yahoo?


Kemarin saya baru saja menghapus aplikasi Facebook dari iPhone lawas saya ( iPhone 4s), karena iPhone saya mulai lemot, dan Facebook app  memakai space hampir 500 Mb sendiri di iPhone saya. Ngomong - ngomong mengenai menghapus facebook app dari smartphone, mungkin tidak hanya saya saja yang melakukannya. Saat ini facebook mulai "kehilangan kepercayaan" karena terkait skandal mengenai penyalahgunaan data pengguna facebook ( baca : Skandal Cambrige Analytica ). Jika Yahoo pernah dihack , Facebook malah sebaliknya yaitu "memberikan" data penggunanya ke pihak lain. Dan terakhir hengkangnya para pendiri Whatsapp yang kita tahu Whatsapp sudah dibeli facebook dengan harga yang sangat fantastis. Pendiri Whatsapp tidak setuju dengan kebijakan facebook mengenai pengabungan data pengguna Whatsapp dan Facebook. Saya sendiri mengalami, ketika ada daftar kontak teman di Whatsapp yang belum menjadi teman di Facebook, otomatis akan muncul rekomendasi teman pada halaman facebook. Ini artinya data pengguna Facebook dan Whatsapp "dihubungkan" melalui nomor telepon. Bagi saya itu tidak masalah sepanjang tidak otomatis jadi teman, hanya saat ini masalah terbesar facebook ada pada privacy data pengguna, jika facebook tidak bisa menjaga (lagi) hal tersebut, hampir dipastikan facebook akan gulung tikar dan tinggal sejarah seperti Yahoo! Dan tidak hanya Facebook, Whatsapp juga akan terkena imbasnya juga. Logikanya jika anda pemilik Facebook dan Whatsapp, tentu saja anda akan gatal mengoprek data pengguna untuk mendatangkan profit lebih banyak lagi. Memang suatu saat Facebook dan Whatspp akan digantikan oleh yang lain, tetapi apakah secepat ini? Tulisan ini bukan untuk meramal nasib Facebook, tetapi untuk peringatan bagi Facebook. Semoga Facebook segera berbenah.

related links :


Labels: , ,

Tuesday, September 05, 2017

Solusi WhatsApp Lambat Di Iphone


WhatsApp saat ini merupakan aplikasi yang paling banyak dipakai oleh para pengguna smartphone setelah era BBM tenggelam. Dengan fitur yang melimpah dan kemudahan user interface-nya aplikasi ini mengalami perkembangan yang sangat pesat, apalagi setelah diakuisisi oleh Facebook. Kali ini saya ingin berbagi tips untuk masalah WhatsApp lambat di iPhone, kebetulan iPhone yang saya pakai iPhone 4s. Lambatnya aplikasi WhatsApp ada berbagai faktor yaitu :
  1. Jaringan data operator sedang sibuk.
  2. Ruang penyimpanan pada smartphone sudah hampir habis.
  3. Terlalu  banyak dokumen, video dan gambar yang tersimpan pada aplikasi WhatsApp.
  4. Terlalu banyak chat atau group chat pada aplikasi WhatsApp.
  5. Banyak aplikasi lain yang aktif selain WhatUp, sehingga berpengaruh secara tidak langsung pada aplikasi WhatsApp.


Berikut saya berikan beberapa solusi sesuai dengan kondisi pembaca sekalian, yaitu antara lain:
  1. Pada aplikasi WhatsApp khususnya iPhone, ketika kita menerima gambar atau video, maka WhatsApp akan menyimpan di dua tempat yaitu pada Albums > My Photos Stream, Camera Roll dan Videos kemudian pada aplikasi WhatsApp, bisa di lihat pada Group Info atau Contact Info, kemudian pilih Media, Links dan Docs. Hal inilah yang menyebabkan  space penyimpanan semakin menipis. Sehingga solusinya untuk dokumen dokumen tidak penting anda bisa menghapus file di kedua tempat tersebut, tetapi jika penting anda bisa menyimpannya di folder Albums.
  2. Solusi pencegahan agar anda tidak menyimpan dokumen “sampah” dari chat maupun group chat, masuk pada settingan WhatsApp pada iPhone, yaitu Settings > Data and Storage Usage, pada Media Auto-Download anda bisa memilih, misal Photos  : Never artinya ketika teman anda mengirim gambar anda bisa memilih untuk mendownload atau tidak, tidak otomatis download. Setting ini sama juga untuk media lain yaitu Audio, Videos dan Documents. Mungkin hal ini kelihatan sepele tetapi saya merasakan sendiri efeknya, selain hemat paket data, juga hemat space.
  3. Hapus group chat dan chat yang sudah tidak “berguna” ketika waktu anda longgar, karena aktivitas ini cukup menyita waktu, apalagi jika anda termasuk orang banyak menggunakan WhatsApp sebagai alat untuk berkomunikasi. Aplikasi WhatsApp sendiri pada iPhone jika sudah sangat berat, maka iOS ( sistem operasi iPhone ) akan menutup paksa, sehingga kita harus membuka lagi dari awal. Juga ketika WA menjadi lemot atau tidak responsif artinya memori iPhone sudah penuh karena me-loading aplikasi WA dengan “barang bawaan” yang cukup banyak yaitu Chat, Photos, Videos dan Documents.
  4. Cara cepat hapus dokumen di WA dengan cepat yaitu masuk ke menu Setting - Data and Storage Usage - Storage Usage, nanti di menu tersebut akan muncul banyaknya dokumen yang tersimpan per contact, setelah anda pilih contact-nya pilih tombol Manage lalu pilih option dokumen apa saja yang akan dihapus ( clear ), jika ingin berkas chat WA  masih ada uncheck option Text, lalu pilih Clear. Lakukan langkah yang sama untuk contact yang lain. ( gambar ada di bawah )
  5. Tutup aplikasi lain yang aktif, dengan menekan tombol home 2 kali , kemudian tutup aplikasi yang sudah tidak dipergunakan. Bagi pengguna iPhone sejati mungkin hal ini sudah tidak perlu dilakukan lagi, tetapi bagi pengguna iPhone “newbie” kadang hal ini terlewatkan dan sudah buru buru menyalahkan aplikasi WhatsApp lambat. 
Daftar banyaknya dokumen per contact WA

Pilih Clear untuk menghapus dokumen



Semoga bermanfaat.

related links :

Upgrade from iPhone 4s to iPhone SE

Cara Kalibrasi Baterai iPhone

Touchscreen iPhone tidak responsif ketika dicharge



Labels: , ,