PHP Baca Gmail dan Simpan di MySQL (Bagian 2)

Melanjutkan post sebelumnya tentang baca gmail pake PHP, setelah berhasil mengambil email sekarang waktunya memparsing body email. Kita akan memanfaatkan fungsi imap fetchstructure untuk mengetahui apakah body email hanya terdiri dari teks saja atau multipart (berisi html). Untuk email yang hanya teks, sepertinya tidak terlalu rumit, cukup search saja kata yang dibutuhkan.

Jika body berisi html maka akan digunakan parser buatan kak Borisevich.

Pertama kita buat script untuk membaca email ini.

email-to-read
Kode read_gmail2.php.

Ups, error lagi. Ternyata butuh ekstensi dom/xml untuk menggunakan karya kakak dari Rusia itu. Pengguna Ubuntu cukup ketik perintah.

Akses lagi script read_gmail2.php.

show-recent-emailKita akan mengambil kata Ipsum pada ordered list. Baca-baca dokumentasi html parser untuk tujuan kita, dapat disederhanakan begini.

Contoh sederhana penggunaan html parser adalah.

Kembali ke script read_gmail2.php, dengan inspect element (F12) pada browser diketahui bahwa kata tersebut terdapat pada list ber-id yui_3_16_0_ym19_1_1481460480726_2769. Karena tiap li diberi id berbeda oleh yahoo (email itu dibuat melalui Yahoo) maka dapat digunakan pendekatan seperti contoh. Namun untuk email lain bisa jadi metode yang ditempuh harus berbeda. Jadi yang utama adalah inspect element dan fungsi yang tersedia dari html parsernya kakak Dmitry.

inspect-elementJadi untuk mendapatkan Ipsum, cukup mengganti read_gmail2.php di bagian ini.

Dan hasilnya.
parsing-resultOkesip, berhasil parsing html.

Post selanjutnya tinggal bagaimana menambahkan ke dalam MySQL.

Salam.

Lebih lanjut:

http://php.net/manual/en/function.imap-fetchbody.php

PHP Baca Gmail dan Simpan di MySQL (Bagian 1)

Belakangan saya senang mendaftar pekerjaan data entri pada situs lowongan kerja untuk freelance, berharap jenis pekerjaannya cukup sederhana untuk dapat diotomasi dengan script (Python, PHP, Bash) dan ngerjainnya ga butuh banyak waktu.

Salah satu pekerjaan yang menarik yang ditawarkan, ‘saya ingin mengambil bagian tertentu dari email dan menyimpan dalam database.’ At first saya ingin menggunakan Python untuk mengerjakannya, tapi lalu terpikir bagaimana kalau script itu harus dijalankan di shared hosting? Maka PHP lah pendekatan yang paling masuk akal. Karenanya saya coba dulu pake PHP.

Pertama saya perlu instal ekstensi IMAP pada PHP. Karena lingkungan pemrograman saya adalah PHP7 pada Nginx dalam Ubuntu maka  saya cukup mengetik pada terminal.

Untuk lingkungan pemrograman lain proses di atas dapat menyesuaikan, misal aktivasi imap di cpanel tentu berbeda.

Setelah instalasi, untuk memastikan ekstensi terload pada servis php maka.

Sebelum ngoding, kita lihat dulu inbox gmail yang akan kita akses.

Inbox

Inbox

Lalu ketik kode read_gmail.php.

Selengkapnya untuk fungsi dari php imap ada di sini.

Lalu (drum roll).

Ups! Error! (Ba dum tss).

error-authenticatePerbaiki dengan:

  1. Enable imap di Gmail Settings sesuai petunjuk mereka.
  2. Gunakan pilihan less secure di sini.
  3. Enable dengan link ini.

Dan alakazam!

read-gmailInbox gmail setelah semua dibaca.

gmail-inbox-seen

Kita berhasil baca email yang belum terbaca, tapi hasilnya masih amburadul karena semua isi dari body ditampilkan.

Lalu ternyata cukup panjang proses untuk membaca body email, karenanya tulisan ini akan dibagi menjadi 3.

Bagian 2 (Parsing Email Body)

Salam.

Lebih lanjut:

http://www.namasteui.com/read-gmail-emails-using-php-imap/

https://arjunphp.com/reading-emails-from-gmail-using-php-imap/

http://tecadmin.net/install-php-7-on-ubuntu/

http://stackoverflow.com/questions/24525284/access-emails-using-imap

https://support.google.com/mail/answer/7126229?hl=en

http://php.net/manual/en/book.imap.php

Raspberry Pi 2 DSLR Remote Shutter Release

Sesuai janji saat baru mendapatkan Raspberry Pi 2, saya akan cerita bagaimana membuat remote shutter release menggunakan raspi ini. DSLR yang digunakan adalah Nikon D90, menggunakan kamera lain mungkin saja tidak berhasil, sila periksa model apa saja yang kemungkinan besar berhasil.

Kenapa shutter release? Dengan shutter release fotografer dapat beberapa manfaat, seperti bisa swafoto dan menghindari goncangan pada kamera, yang umumnya terjadi saat kamera dipegang (oleh manusia) dan shutter speed diset pada nilai rendah.

Shutter release sendiri ada 3 jenis:

  • Dengan kabel, kekurangannya adalah ‘siapa yang butuh kabel saat ini? semua harus wireless! wireless!’
  • Infrared, sayangnya tidak semua kamera mendukung infrared, selain karena jarak maksimal hanya sekitar 5 meter.
  • Wireless, ini istilah yang aneh juga, toh infrared juga wireless. Di era sebelum ini, kamera harus dipasang receiver untuk dapat menggunakan wireless shutter speed dan mahal set perangkatnya, inilah yang disasar disubstitusikan oleh apa yang kita bahas sekarang. Ternyata rerata kamera (DSLR) sekarang sudah melengkapi perangkatnya dengan fitur ini, tinggal aktifkan di kamera, connect dengan gawai, lalu shutter dapat diakses nirkabel, persis yang dilakukan oleh kamera aksi.

Wireless shutter release dengan raspi ini dimainkan di lapangan raspbian dan gol indah tercipta melalui umpan lambung akurat gphoto2 yang kemudian dilanjutkan dengan tendangan voli oleh php. Siapa manager di balik permainan indah ini? Adalah Blaize, yang meramu taktik menawan yang dapat memadukan dua pemain kunci ini menjadi padan. Jangan lupakan agen bernama Gonzalo Cao Cabeza de Vaca yang membawa gphoto2 dapat berlaga di raspbian.

Dalam sistem ini, kalau boleh dikatakan sebagai sistem, Raspberry Pi 2 bertugas untuk:

  • Menjadi Access Point, agar gawai dapat melakukan koneksi nirkabel. Salah satu petunjuk agar raspi menjadi AP ada di sini.
  • Menyajikan antarmuka web, yang diakses melalui gawai.
  • Mengirim perintah pada kamera untuk memicu shutter.

Diagram dan flowchart sebagai berikut.

Diagram Sistem

Diagram Sistem

Flowchart

Flowchart

Cukup bualannya, mari dimulai meramu wireless shutter release a la raspi.

  1. Instalasi gphoto2, di raspi paling mudah menggunakan bantuan mas Gonzalo.

  1. Instalasi PHP5.

  1. PHP Script sebagai antarmuka sistem.

  1. Masuk ke direktori berisi PHP script yang akan jadi antarmuka.

  1. Eksekusi PHP script, menjadikan raspi sebagai peladen.

Setelah instalasi, selanjutnya cukup menjalankan langkah 4 dan 5 untuk menggaktifkan sistem.

Melalui gawai, atau komputer, arahkan peramban ke alamat 0.0.0.0:8000. Angka 0.0.0.0 dapat diganti dengan ip raspi, misal 192.168.0.106. Begini hasilnya jika tampil pada gawai. (Foto dari postingan agan Blaize, sang kreator).

Antarmuka

Antarmuka

Hasilnya seperti ini.

Tidak sulit amat, hanya agak kecewa karena ternyata DSLR sekarang sudah dilengkapi dengan fitur ini. Mwahahaha.

Salam.

Lebih lanjut:

https://www.maketecheasier.com/set-up-raspberry-pi-as-wireless-access-point/

http://techlife.blaize.net/2014/04/20/gphoto-webui-a-php-web-ui-for-gphoto2/

https://github.com/gonzalo/gphoto2-updater