Feb 21, 2010

ส่ง sms ผ่าน google calendar ด้วย gcalcli

google calendar นั้นมีบริการส่ง sms ไปยังโทรศัพท์มือถือของผู้ใช้ เพื่อแจ้งเตือนกิจกรรม ต่างๆ ใน calendar โดยผู้ใช้ต้องทำการยืนยันตัวตนก่อนกับทาง google ก่อน โดยการส่ง sms เตือนนั้นจะมีค่าโดยปริยายคือ เตือนล่วงหน้า 10 นาที


ในบทความนี้เราจะสร้าง shell script ที่ใช้ส่ง sms โดยความต้องการพื้นฐานมีดังนี้

- ยืนยันตัวตนและหมายเลขโทรศัพท์มือถือกับ google calendar

- ติดตั้งโปรแกรม ntpdate เพื่อใช้ปรับเวลาเครื่องให้ตรง

- ติดตั้งโปรแกรม gcalcli ซึ่งใช้ในการติดต่อกับ google calendar


ในส่วนการยืนยันตัวตนและหมายเลขโทรศัพท์มือถือนั้น จะไม่กล่าวถึง


เริ่มด้วยติดตั้งโปรแกรม ntpdate และ gcalcli


$ sudo aptitude install ntpdate gcalcli



จากนั้นสร้าง shell script ที่ใช้ส่ง sms


$ touch sms.sh
$ chmod +x sms.sh


โดยรายละเอียดภายในเป็นดังนี้


#!/bin/bash

export LANG=th_TH.UTF-8
DATE15=`date -d "15 min" +%H:%M%p`
echo "$DATE15 $@"
gcalcli --user --pw quick "$DATE15 $@"

exit 0


การใช้งาน คือ

ขั้นแรกเราต้องตั้งเวลาเครื่องให้ตรงก่อน


$ sudo ntpdate pool.ntp.org ntp.ubuntu.com


จากนั้นสั่ง


$ ./sms.sh  "ข้อความที่ต้องการส่ง"


script จะทำงานโดยตั้ง locale เป็นไทย เพื่อให้สามารถใช้ภาษาไทยได้ จากนั้นตั้งเวลาล่วงหน้า ไป อีก 15 นาที

ดังนั้น sms จะส่งมาที่โทรศัพท์มือถือหลังจากเรียก script เป็นเวลา 5 นาที (เพราะว่าค่าโดยปริยายของ google calendar คือ เตือนล่วงหน้า 10 นาที หากต้องการให้ส่งเร็วกว่านี้ ก็สามารถแก้ได้) จากนั้น gcalcli จะเพิ่มกิจกรรมลงใน calendar ตามข้อความและเวลาที่เรากำหนด


การประยุกต์ใช้

- ใช้ในการเตือนสำหรับผู้ดูแลระบบ ในกรณีที่เครื่องมีปัญหา เช่น harddisk เต็ม หรือ บริการบางอย่างไม่ทำงาน โดยปรับแต่ง

script ให้ตรวจสอบเครื่อง และเพิ่ม ลงใน crontab ของระบบ