เขียนโค้ด ส่ง SMS เข้ามือถือ แบบฟรีๆ

January 2009 | By platoosom | PHP | Tags : | อ่าน : 2672

ทริปนี้ เราจะแอบเอาความสามารถของ google calendar มาใช้ หลายท่านคงทราบอยู่แล้วว่า google calendar นั้น มีฟังก์ชั่นเตือนเหตุการณ์ล่วงหน้า  ด้วย SMS และมี API ให้เราใช้  เราจะใช้ช่องตรงนี้แหละครับ  มาทำให้โปรแกรมเราส่ง SMS หาเราเมื่อมีคอมเม้นท์ใหม่ หรือว่ามีเหตุการณ์อันใดเกิดขึ้น สักอย่างกับเว็บเรา ลองดูโมเดล คร่าวๆ

 

send SMS model

 

1.ต้องมีแอคเค้าของ google และ เซต SMS

 

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

http://www.9tana.com/node/google-calendar/ หรือที่นี่ http://gotoknow.org/blog/krunapon/118353 ย้ำนะครับว่าต้องเซ็ตขั้นตอนนี้ให้เรียบร้อย สำหรับบางเครือข่ายโทรศัพท์ ไม่สามารถใช้คุณสมบัตินี้ได้ เพราะ google calendar ยังไม่ซัพพอร์ต ก็ต้องแสดงคำว่า เสียใจด้วย แต่ถ้าอยากจะทดสอบ ทดลอง เอาโดเรม่อนไปแลกซิม ทรูมูฟ จากเซเว่นมาสักซิม ก็ได้ครับ

 

 

2.ดาวน์โหลด Zend Gdata

ไลบรารี่นี้ทำให้เราเขียนติดต่อกับ google calendar ได้ ง่ายและสะดวก

ZendGdata-1.7.3.zip

 

 

3.แตกซิป Zend Gdata

ในโฟลเดอร์ ZendGdata-1.7.2 จะมีทั้ง document และโค้ดตัวอย่างมากมาย  แต่สิ่งที่เราต้องใช้คือสิ่งที่อยู่ในโฟลเดอร์ ZendGdata-1.7.2libraryZend ก้อปปี้มาใช้ทั้งโฟลเดอร์ Zend เลยนะครับ

 

 

4.สร้างฟังก์ชั่นสำหรับติดต่อกับ google calendar

มันก็คือฟังก์ชั่นที่ใช้เพิ่มรายการ เข้าไปใน google calendar และตั้งเวลาให้ส่ง SMS หาเรา โดยในฟังก์ชั่นนี้ผม ให้ใส่รายการไป ณ.เวลาปัจจุบัน+3 นาที และให้แจ้งเตือนก่อนถึงรายการนี้ 2 นาที เพราะฉะนั้นเมื่อ + – แล้ว หลังสคริปเรารันจบ ประมาณ 1 นาที จะต้องมี SMS หาเรา

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?php
function send_sms( $param_google_username , $param_google_password,$param_title,$param_content ){
 
	/**
	 * @Include Zend_Loader
	 */
	require_once 'Zend/Loader.php';
 
	/**
	 * @Load Zend_Gdata
	 */
	Zend_Loader::loadClass('Zend_Gdata');
 
	/**
	 * @Load Zend_Gdata_AuthSub
	 */
	Zend_Loader::loadClass('Zend_Gdata_AuthSub');
 
	/**
	 * @Load Zend_Gdata_ClientLogin
	 */
	Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
 
	/**
	 * @Load Zend_Gdata_HttpClient
	 */
	Zend_Loader::loadClass('Zend_Gdata_HttpClient');
 
	/**
	 * @Load Zend_Gdata_Calendar
	 */
	Zend_Loader::loadClass('Zend_Gdata_Calendar');
 
	// Parameters for ClientAuth authentication
	$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
	$user = $param_google_username ;
	$pass =$param_google_password ;
 
	// Create an authenticated HTTP client
	$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);
 
	// Create an instance of the Calendar service
	$service = new Zend_Gdata_Calendar($client);
 
	// Create a new entry using the calendar service's magic factory method
	$event= $service->newEventEntry();
 
	// Populate the event with the desired information
	// Note that each attribute is crated as an instance of a matching class
	$event->title = $service->newTitle( $param_title );
 
	//$event->where = array($service->newWhere("Mountain View, California"));
	$event->content = $service->newContent( $param_content );
 
	// Set the date using RFC 3339 format.
	$startDate = date( "Y-m-d" );//"2009-01-15";
	$startTime = date( "H:i" , strtotime("+3 minutes") );
	$endDate = date( "Y-m-d" );
	$endTime = date( "H:i" , strtotime("+6 minutes") );
	$tzOffset = "+07";
 
	$when = $service->newWhen();
	$when->startTime = "{$startDate}T{$startTime}:00.000{$tzOffset}:00";
	$when->endTime = "{$endDate}T{$endTime}:00.000{$tzOffset}:00";
 
	// Create a new reminder object. It should be set to send an email
	// to the user 10 minutes beforehand.
	$reminder = $service->newReminder();
	$reminder->method = "sms";
	$reminder->minutes = "2";
 
	$when->reminders = array($reminder);
 
	$event->when = array($when);
 
	// Upload the event to the calendar server
	// A copy of the event as it is recorded on the server is returned
	if ($newEvent = $service->insertEvent($event)){
 
		return true ;
	}else{
 
		return false;
	}
 
}?>

 

ฟังก์ชั่นนี้ผมส่งพารามิเตอร์เข้าไป 5 ตัว เขียนไว้เป็นฟังก์ชั่นเวลาเรียกใช้งานจะได้สะดวก

$param_google_username – username ที่ใช้ล้อกอินเข้ากูเกิล

$param_google_password – password ที่ใช้ล้อกอินเข้ากูเกิล

$param_title – หัวข้อรายการ

$param_content – เนื้อหาที่เราจะให้ส่ง sms หาเรา

 

 

5.ส่ง SMS

87
88
89
90
91
92
93
94
95
<?php
$google_username = "xxxxxxxxxxx"; // username เข้ากูเกิลของคุณ
$google_password = "xxxxxxxxxxx"; // password เข้ากูเกิลของคุณ
$title = "เรื่องนี้ต้องขยาย";
$content = "เนื่องจากนางสมศรีแอบรักกับนายสมชาย โดยพ่อสมปองไม่ทราบ"; 
 
// ส่ง SMS
send_sms( $google_username , $google_password , $title ,$content );
?>

 

6.Final โค้ดทั้งหมด จะเป็นดังนี้

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
function send_sms( $param_google_username , $param_google_password,$param_title,$param_content ){
 
	/**
	 * @Include Zend_Loader
	 */
	require_once 'Zend/Loader.php';
 
	/**
	 * @Load Zend_Gdata
	 */
	Zend_Loader::loadClass('Zend_Gdata');
 
	/**
	 * @Load Zend_Gdata_AuthSub
	 */
	Zend_Loader::loadClass('Zend_Gdata_AuthSub');
 
	/**
	 * @Load Zend_Gdata_ClientLogin
	 */
	Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
 
	/**
	 * @Load Zend_Gdata_HttpClient
	 */
	Zend_Loader::loadClass('Zend_Gdata_HttpClient');
 
	/**
	 * @Load Zend_Gdata_Calendar
	 */
	Zend_Loader::loadClass('Zend_Gdata_Calendar');
 
	// Parameters for ClientAuth authentication
	$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
	$user = $param_google_username ;
	$pass =$param_google_password ;
 
	// Create an authenticated HTTP client
	$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);
 
	// Create an instance of the Calendar service
	$service = new Zend_Gdata_Calendar($client);
 
	// Create a new entry using the calendar service's magic factory method
	$event= $service->newEventEntry();
 
	// Populate the event with the desired information
	// Note that each attribute is crated as an instance of a matching class
	$event->title = $service->newTitle( $param_title );
 
	//$event->where = array($service->newWhere("Mountain View, California"));
	$event->content = $service->newContent( $param_content );
 
	// Set the date using RFC 3339 format.
	$startDate = date( "Y-m-d" );//"2009-01-15";
	$startTime = date( "H:i" , strtotime("+3 minutes") );
	$endDate = date( "Y-m-d" );
	$endTime = date( "H:i" , strtotime("+6 minutes") );
	$tzOffset = "+07";
 
	$when = $service->newWhen();
	$when->startTime = "{$startDate}T{$startTime}:00.000{$tzOffset}:00";
	$when->endTime = "{$endDate}T{$endTime}:00.000{$tzOffset}:00";
 
	// Create a new reminder object. It should be set to send an email
	// to the user 10 minutes beforehand.
	$reminder = $service->newReminder();
	$reminder->method = "sms";
	$reminder->minutes = "2";
 
	$when->reminders = array($reminder);
 
	$event->when = array($when);
 
	// Upload the event to the calendar server
	// A copy of the event as it is recorded on the server is returned
	if ($newEvent = $service->insertEvent($event)){
 
		return true ;
	}else{
 
		return false;
	}
 
}
 
$google_username = "xxxxxxxxxxx"; // username เข้ากูเกิลของคุณ
$google_password = "xxxxxxxxxxx"; // password เข้ากูเกิลของคุณ
$title = "เรื่องนี้ต้องขยาย";
$content = "เนื่องจากนางสมศรีแอบรักกับนายสมชาย โดยพ่อสมปองไม่ทราบ"; 
 
// ส่ง SMS
send_sms( $google_username , $google_password , $title ,$content );
 
?>

 

ส่งท้าย

ความสำคัญทั้งหมดจะอยู่ที่ ฟังก์ชั่น send_sms ถ้าคุณจะทดสอบโค้ดชุดนี้ในเครื่องของคุณ ต้องมั่นใจนะครับว่า คุณได้เปิด OpenSSL ใน php.ini ไว้เรียบร้อย

 

โค้ดชุดนี้สามารถเอาไปประยุกต์ เป็นระบบส่ง SMS ภายในองค์กร หรือในกลุ่มเพื่อน สาเหตุที่บอกว่าประยุกต์ใช้เป็นกลุ่มอย่างนี้ เพราะว่าคุณต้องรู้ username กับ password google ของเขา จึงสามารถไปสร้างรายการแจ้งล่วงหน้าด้วย SMS ใน google calendar ของเขาได้

 

อ้างอิง : การใช้งาน google calendar API อย่างละเอียด

**** ย้ำเตือนนะครับ ****

  1. ต้องใช้ UTF-8 เท่านั้น
  2. ส่วนเรื่องเวลา จะขึ้นอยู่กับว่าโฮสต์ของท่านตั้งอยู่ประเทศไหน ถ้าไม่ได้อยู่ในไทย ก็แก้ตรงนี้ $tzOffset = “+07″;

บทความน่าสนใจ

  1. Google calendar
  2. แจกโค้ด php คำนวณอายุ
  3. jQuery ปฎิทิน
Tags:

ผู้เขียน: วัชรเมธน์ ชิษณุคุปต์ ศรีเนธิโรทัย

เว็บไซต์ :http://www.select2web.com

งานเล็กๆก็ยิ่งใหญ่ได้ ถ้าอยู่ในที่ๆเหมาะสม

มี 114 ความเห็น ในบทความเรื่อง “เขียนโค้ด ส่ง SMS เข้ามือถือ แบบฟรีๆ”

  1. Phet says:

    ในโฟลเดอร์ ZendGdata-1.7.2 จะมีทั้ง document และโค้ดตัวอย่างมากมาย แต่สิ่งที่เราต้องใช้คือสิ่งที่อยู่ในโฟลเดอร์ ZendGdata-1.7.2libraryZend ก้อปปี้มาใช้ทั้งโฟลเดอร์ Zend เลยนะครับ

    —โฟลเดอร์ Zend ต้อง copy ไปวางไว้ที่ไหนครับ

  2. platoosom says:

    เอาไว้ในโฟลเดอร์เดียวกับโฟลเดอร์ที่เราเก็บสคริปต์ ของเรา

    ดูคำสั่งนี้นะครับ require_once ‘Zend/Loader.php’; แสดงว่า โฟลเดอร์ Zend อยู่ในระดับเดียวกับไฟล์โค้ด ของเรา

  3. Phet says:

    ขอบคุณมากครับ ได้แล้วครับ

    ขอรบกวนอีกนิดนึงนะครับ คือว่า ผมทดสอบบนเครื่องตัวเอง (localhost) ก็ใช้การได้ ทีนี้ผม upload script ทั้งสองตัว และ folder Zend ไปยัง Free host ที่ USA

    ผมลอง PHPINFO() ดู พบว่า openssl enabled ครับ ก็ลองใช้ดู พอสั่งรัน script ก็ได้รับ Event ใน Calendar ผม แต่ผมไม่ได้รับ meesage เข้าโทรศัพท์ครับ แบบนี้จะแก้ไขยังไงครับ

    ขอบคุณมากครับ

  4. platoosom says:

    คือหมายถึงว่า คุณได้ตั้งค่าให้ google calendar ส่ง SMS หาคุณได้แล้ว ใช่มั้ยครับ

    คงต้องลองตรวจการตั้งค่าของกูเกิล อีกทีครับ ทดสอบโดยการสร้างรายการใหม่เอง ใน google calendar เลย แล้วลองตั้งเวลาให้มันส่ง SMS ดูว่าใช้ได้หรือยัง

    จริงๆ ถ้าโค้ดโอเคแล้ว ปัญหาน่าจะอยู่ที่การตั้งค่าใน google calendar

    ได้หรือไม่ได้ยังไง บอกด้วยนะครับ ยินดีช่วยครับผม

  5. Phet says:

    ใช่ครับ เพราะตอนผมลองใน localhost ผมได้รับ message แต่พอให้ โฮสที่ USA ส่ง ได้รับ event แต่ไม่ได้รับ message ครับ

    ขอบคุณมากครับ

  6. platoosom says:

    น่าจะเป็นเพราะความแตกต่างของเวลา ลองรันโค้ดดู แล้วดูรายการว่ามัน เริ่มเวลาที่เท่าไร จบที่เท่าไหร่ ใน google calendar นะครับ

  7. Phet says:

    ครับ ผมลองรันใหม่แล้วครับ ปรากฎว่า เวลาที่ event มาถึง เป็นเวลา GMT ซึ่งผมคิดว่า โฮสนั้นน่าจะใช้เวลาเป็น GMT ผมเลยลองเข้าไปดู code ด้านล่างครับ

    // Set the date using RFC 3339 format.
    $startDate = date( “Y-m-d” );//”2009-01-15″;
    $startTime = date( “H:i” , strtotime(“+3 minutes”) );
    $endDate = date( “Y-m-d” );
    $endTime = date( “H:i” , strtotime(“+6 minutes”) );
    $tzOffset = “+07″;

    $when = $service->newWhen();
    $when->startTime = “{$startDate}T{$startTime}:00.000{$tzOffset}:00″;
    $when->endTime = “{$endDate}T{$endTime}:00.000{$tzOffset}:00″;

    ผมก็เลยคิดว่า มันมาช้าไป 7 ชม ก็เลยแก้ $tzOffset = “+07″; เป็น +14 ทีนี้ไม่ได้รับ event เลยครับ เลยลองแก้เป็น “00″ ได้รับ message แล้วครับ (ยัง งงๆ อยู่)

    อีกนิดนะครับ (‘_’!) ผมเห็นว่า code ส่วน

    $reminder = $service->newReminder();
    $reminder->method = “sms”;
    $reminder->minutes = “2″;

    ตรง $reminder->method นี้ครับ เราสามารถทำให้ส่ง email ไปหา account อื่นๆ ได้ไหมครับ เช่น hotmail ฯลฯ

    ขอบคุณมากนะครับสำหรับคำแนะนำ

  8. platoosom says:

    $tzOffset = “+07″; โค้ดตรงนี้ไว้สำหรับเซต offset ของเวลา โฮสต์ผมอยู่ในไทย เลยต้อง +7 เข้าไป ลืมนึกไปถึงว่าอาจจะมีคนที่ใช้โฮสต์ของต่างประเทศ เลยไม่ได้แนะนำไว้

    “ตรง $reminder->method นี้ครับ เราสามารถทำให้ส่ง email ไปหา account อื่นๆ ได้ไหมครับ เช่น hotmail ฯลฯ”

    เราสามารถตั้งให้ส่งเป็น อีเมล์ได้ครับ แต่จะส่งเข้าได้เฉพาะอีเมล์ gmail ของเราเท่านั้นครับ
    $reminder->method = “email”;

  9. platoosom says:

    ขออธิบายเรื่อง offset ของเวลานิดนึงนะครับ ท่านเคยสังเกตเวลาเราติดตั้งวินโดวมั้ยครับ เวลาให้เราเลือกโซนของเวลา ของเราจะเลือกเป็น GMT+7 bangkok/hanoi/jakata ที่ต้องเป็น +7 เพราะเนื่องจากว่า เวลาบ้านเราจะเร็วกว่า เวลา ณ เส้นกรีนนิช หรือเส้น 0 นาฬิกา อยู่ 7 ชั่วโมง

    ประเทศอื่นๆ ก็เหมือนกันจะมีเวลา ที่เร็วช้าต่างกัน ถ้าอยากทราบว่าประเทศไหน เร็วช้า ต่างกันอยู่เท่าไร ก็ดูได้จาก reginal and language settings ในวินโดว

    เวลาเรา get เวลาจากโฮสต์ มันก็จะได้เวลาตาม ประเทศที่โฮสต์ ตั้งอยู่ ซึ่งในบางครั้งมันจะไม่ใช่เวลาที่เราต้องการ ต้องเอามา + มา – กันเล็กน้อย

    $tzOffset = “+07″; เป็นความหมายบอกไปยังกูเกิลกลายๆว่า โฮสต์ผมอยู่โซนเมืองไทยนะ เวลาที่ให้ไป ก็เป็นเวลาของเมืองไทยนะ

    หลังจากนั้นกูเกิลเขาจะแปลงเวลาให้เป็นอย่างที่เขาต้องการอีกที

  10. Anonymous says:

    ติดตั้งแล้วลองเปิดจากโค้ดที่ให้มา เจอปัญหานี้ จะต้องแก้อย่างไรดีครับ
    Fatal error: Call to undefined function ctype_alnum() in /home/myweb/Zend/Uri.php on line 107

  11. platoosom says:

    คุณลองใช้คำสั่ง phpinfo() ตรวจดูว่าได้เปิด OpenSSL ไว้หรือเปล่าครับ

  12. Anonymous says:

    ขอบคุณครับ เหมือนจะปิดไว้จริงๆ ต้องไปเซ็ทเปิดที่ไหนเหรอครับ

  13. platoosom says:

    ต้องไปแก้ที่ไฟล์ php.ini ครับ ถ้าใช้วินโดวส์ คุณก็เปิด Run ขึ้นมาแล้ว พิมพ์ php.ini เข้าไป มันจะเปิดขึ้นมาเองครับ เพราะไฟล์นี้เก็บไว้ที่ โฟลเดอร์ System32 ของระบบ

  14. platoosom says:

    ขอโทษทีเมื่อกี้อธิบายไม่ละเอียด

    หลังจากเปิดไฟล์ php.ini ขึ้นมาแล้ว หาบรรทัดนี้ ;extension=php_openssl.dll ลบเครื่องหมาย ; (คอมม่า) ด้านหน้าออก Save แล้วก็รีสตาร์ท Apache ครับ

  15. Anonymous says:

    ได้แล้ว ขอบคุณครับ :)

  16. platoosom says:

    ด้วยความยินดีครับ

  17. pex says:

    มันเป็นภาษาต่างดาวครับ ต้องแก้ที่ไหนครับ แล้ว Message ที่ส่งมันสั้นมากครับ
    จะตัดวันที่ทิ้งยังไงครับ

  18. platoosom says:

    มันเป็นภาษาต่างดาว เพราะคุณใช้ encoding แบบ TIS-620/Windows-874 ซึ่งตัว Zend มันเป็น UTF-8

    ส่วนเรื่องข้อความสั้นนั้น ที่จริงแล้ว ไม่สั้นครับ ได้อย่างน้อยๆ ก็ 15 คำขึ้น แต่ของคุณมันสั้น เพราะตัวหนังสือมันเป็นต่างดาว วันที่เราตัดทิ้งไม่ได้ครับ เพราะมันอยู่ที่กูเกิล ว่าจะแนบอะไรต่อท้ายข้อความมาให้เราด้วย

    อีกอย่างนึง อันที่จริงแล้ว SMS นี้การทำงานของมันคือ เตือนว่าคุณจะต้องทำอะไร ตอนเวลาไหน นั่นคือวัตถุประสงค์หลัก ของ google Calendar มันก็ต้องมีวันกับเวลาแน่แท้อยู่แล้ว แต่แบบว่าเราแอบเอามาประยุกต์ใช้อย่างอื่น

  19. pex says:

    Encode เป็น UTF-8 แก้ที่ไหนครับ

  20. ปลาทูสม says:

    ลองใส่คำสั่ง

    <?php
    header ('Content-type: text/html; charset=utf-8');
    ?>

    ไว้บรรทัดแรกสุดของโค้ดคุณ นะครับ

  21. pex says:

    ไม่ได้เหมือนกันครับ ผมลองพิมพ์ภาษาไทยเทสบนหน้าเว็บเพจมันเป็นต่างดาวครับ แต่ถ้า Encode เป็น Tis620 จะโชว์ได้ครับ

  22. platoosom says:

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

  23. pex says:

    พิมพ์โดยตรงได้ครับ ไม่มีปัญหาอะไร

  24. platoosom says:

    งั้นเปลี่ยนคำสั่งนี้ใหม่

    <?php
    header ('Content-type: text/html; charset=tis620');
    ?>

    ไว้บรรทัดบนสุดเหมือนเดิม

  25. platoosom says:

    ผมพอจะเริ่มเข้าใจปัญหาแล้ว ปัญหามันเกิดเนื่องจาก ไฟล์ ของ zend framework มันเป็น utf-8 แต่ไฟล์ของคุณเป็น tis-620 ทีนี้พอ include ตัว zend framework เข้ามา มันพลอยเปลี่ยน เพจของคุณให้ไปเป็น utf-8 ด้วย ทำให้พอพิมพ์ภาษาไทย เลยเป็น ยิกยุก ฉะนั้น ก็ต้องบังคับให้ output ออกมาเป็น tis-620

  26. pex says:

    แล้วต้องแก้ยังไงครับ ผมลอง

    แล้วก็ไม่ได้เหมือนกันครับ

  27. platoosom says:

    พอจะส่ง url ที่คุณทดสอบไฟล์ ให้ผมหน่อยได้มั้ย อยากเห็นว่าเกิดอะไรขึ้น

  28. pex says:

    ผมใช้เป็น localhost ครับ

  29. platoosom says:

    ผมผิดเอง รู้สึกว่า tis620 มันจะต้องมีขีดคั่นระหว่างกลางด้วยตัวนึง tis-620

    <?php
    header('Content-Type: text/html; charset=tis-620');
    ?>
  30. pex says:

    ไม่ได้เหมือนกัน ผมทำอะไรผิดเนี่ย

  31. pex says:

    ได้แล้ววว ขอบคุณอีกทีครับ

  32. papra says:

    ผมทำได้หมดแล้ว ครับ แต่ คิด ที่ไม่ยอม sms มาสักที รอ 2 ชั่วโมงก็ไม่ ส่ง ดู ปฏิทิน มันก็ ขึ้นนะครับว่า เราสงข้อความไป แต่มันกลับไม่สง sms มา ช่วยบอกผมหน่อยครับ ว่ามัน เพราะอะไรหรอ ขอบคุณ ครับ

  33. platoosom says:

    ลองอย่างงี้ครับ ให้ไปเพิ่มรายการใน google calendar แล้วตั้งให้มันส่ง SMS แล้วรอดูว่ามันส่งหรือเปล่า อันนี้เพื่อทดสอบว่าบริการของกูเกิล ยังปกติ

    ทีนี้ ลองดูในรายการที่เราตั้งเวลาให้ส่ง SMS ดูว่าเวลาตรงกับที่เราตั้งใจให้เป็นหรือเปล่า ถ้ามันผิดเพี้ยน แสดงว่าเกิดขึ้นเพราะเรื่องของโซนเวลา ดูในฟังก์ชั่นที่ผมเขียนไว้นะ มันจะมีกำหนดโซนเวลาด้วย

  34. wachira says:

    เจอ error แบบนี้ครับ

    Warning: domdocument::domdocument() expects parameter 2 to be long, string given in C:\AppServ\www\test\Zend\Gdata\App\Base.php on line 201

    Fatal error: Call to undefined method domdocument::createElementNS() in C:\AppServ\www\test\Zend\Gdata\App\Base.php on line 211

    ลองหาใน google เขาให้เปิดใช้ domxml.dll ก็ไมได้ครับ

  35. lltumll says:

    ก่อนอื่นขอบคุณสำหรับบทความดีๆนะครับ

    ของผมส่งได้นะครับ แต่ หัวข้อกับเนื้อหาไม่มีนะครับ งง ครับ<<< ควรทำไงครับ

  36. lltumll says:

    ภาษาอังกฤษได้ครับเดี่ยวลองส่งภาษาไทย ดูอีกครั้ง^_^

  37. lltumll says:

    ได้ทั้งสองภาษาแล้วครับ

  38. bootman says:

    ดูให้หน่อยครับของผมมันขึ้น error

    Fatal error: Uncaught exception ‘Zend_Gdata_App_HttpException’ with message ‘Unable to Connect to ssl://www.google.com:443. Error #44262864: Unable to find the socket transport “ssl” – did you forget to enable it when you configured PHP?’ in C:\AppServ\www\google_sms\Zend\Gdata\ClientLogin.php:140 Stack trace: #0 C:\AppServ\www\google_sms\send.php(48): Zend_Gdata_ClientLogin::getHttpClient(‘artsukda’, ’471794159′, ‘cl’) #1 C:\AppServ\www\google_sms\send.php(102): send_sms(‘artsukda’, ’471794159′, ‘???????????????…’, ‘???????????????…’) #2 {main} thrown in C:\AppServ\www\google_sms\Zend\Gdata\ClientLogin.php on line 140

  39. platoosom says:

    คุณไม่ได้เปิดการใช้งาน ssl ใน php.ini ครับ

  40. bootman says:

    ผมเปิดแล้วน่ะครับผม ตรง php.ini extension=php_openssl.dll ลบ ; ออกใช่หมัยครับ

  41. bootman says:

    file script ผมก๊อปไปแล้ว ตั้งชื่อ เป็น send.php เอาไว้นอกโฟลเดอร์ Zend ได้ป่าวครับ

  42. platoosom says:

    extension=php_openssl.dll ลบ ; ถูกต้องครับ

    ‘file script ผมก๊อปไปแล้ว ตั้งชื่อ เป็น send.php เอาไว้นอกโฟลเดอร์ Zend ได้ป่าวครับ’ ใช่ครับต้องอยู่นอกโฟลเดอร์ Zend

  43. platoosom says:

    เพิ่มเติมๆ คุณต้องไปดูด้วยว่าในโฟลเดอร์ C:\AppServ\php5\extras มี openssl อยู่หรือเปล่า

  44. bootman says:

    แล้วผมต้องไปแก้ตรงหนัยอีกป่าวครับ ทำมัยมัน error ครับผม

  45. bootman says:

    ครับผม

  46. bootman says:

    มีครับผม

  47. platoosom says:

    มันเป็นปัญหาเรื่องการเปิดใช้งาน ssl นั่นแหละครับ เดี๋ยวผมจะหารายละเอียดให้อีกที หรือถ้าต้องการด่วน ลองเข้าไปถามที่ http://www.appservnetwork.com ดู เขาเป็นคนทำ appserv

  48. bootman says:

    ครับผมขอบคุณมากครับผม

  49. bootman says:

    ไม่ได้เลยครับพี่แต่ก็ไม่เป็นรัยขอบคุณมากครับพี่

  50. Anonymous says:

    มี Error ตามนี้อ่ะครับ
    Fatal error: Uncaught exception ‘Zend_Gdata_App_HttpException’ with message ‘Unable to Connect to ssl://www.google.com:443. Error #55635344: Unable to find the socket transport “ssl” – did you forget to enable it when you configured PHP?’ in C:\AppServ\www\Test_Zend_SMS\library\Zend\Gdata\ClientLogin.php:140 Stack trace: #0 C:\AppServ\www\Test_Zend_SMS\library\send.php(40): Zend_Gdata_ClientLogin::getHttpClient(‘scada.josh@gmai…’, ‘anusornkrongkan’, ‘cl’) #1 C:\AppServ\www\Test_Zend_SMS\library\send.php(94): send_sms(‘scada.josh@gmai…’, ‘anusornkrongkan’, ‘???????????????…’, ‘???????????????…’) #2 {main} thrown in C:\AppServ\www\Test_Zend_SMS\library\Zend\Gdata\ClientLogin.php on line 140

  51. platoosom says:

    คุณต้องเปิดการใช้งาน ssl ด้วยครับ ถ้าไม่อยากแก้ไรมาก็เอาไปทดสอบบนโฮสต์ แต่ถ้าต้องการทดสอบในเครื่อง ลองหาวิธีเปิดใช้งาน ssl ใน กูเกิลดูครับ

  52. ิbootman says:

    ขอบคุณมากครับผม

  53. Anonymous says:

    มันส่งไปให้ google calendar เป็นแบบนี้อ่ะครับ
    ����ͧ����ͧ����

    ทำไงดีครับ
    อีกอย่างคือ มีการสร้าง event calendar แต่มันไม่ส่ง SMS

    …ถ้าเราเซตที่ google calendar แบบ manual ส่งได้ปกติครับ

    ช่วยด้วยครับ

  54. platoosom says:

    มันเ็ป็นเพราะ utf-8 และเป็นเรื่องความต่างของเวลา อ่านคอมเม้นท์ด้านบนนะครับ เขาเคยเจอปัญหานี้ และผมได้เสนอวิธีแก้ไปแล้ว

  55. Anonymous says:

    Coding เป็นไปตามนี้ ครับ

    newEventEntry();
     
    // Populate the event with the desired information
    // Note that each attribute is crated as an instance of a matching class
    $event->title = $service->newTitle( $param_title );
     
    //$event->where = array($service->newWhere(“Mountain View, California”));
    $event->content = $service->newContent( $param_content );
     
    // Set the date using RFC 3339 format.
    $startDate = date( “Y-m-d” );//”2009-01-15″;
    $startTime = date( “H:i” , strtotime(+3 minutes”) );
    $endDate = date( “Y-m-d” );
    $endTime = date( “H:i” , strtotime(+6 minutes”) );
    $tzOffset =+08;
     
    $when = $service->newWhen();
    $when->startTime ={$startDate}T{$startTime}:00.000{$tzOffset}:00;
    $when->endTime ={$endDate}T{$endTime}:00.000{$tzOffset}:00;
     
    // Create a new reminder object. It should be set to send an email
    // to the user 10 minutes beforehand.
    $reminder = $service->newReminder();
    $reminder->method = “sms”;
    $reminder->minutes =2;
     
    $when->reminders = array($reminder);
     
    $event->when = array($when);
     
    // Upload the event to the calendar server
    // A copy of the event as it is recorded on the server is returned
    if ($newEvent = $service->insertEvent($event)){
     
    return true ;
    }else{
     
    return false;
    }
     
    }?>

    แต่ก็ยังส่งไทยไม่ได้ครับผม
    งงครับ ไม่แน่ใจผิดตรงไหนหรือเปล่าครับ

  56. Anonymous says:

    ขอโทษทีครับ
    พอดีข้อความเยอะไปหน่อย ผมแค่อยากจะบอกว่า ผมใส่

    ไปในส่วนบนสุดของไฟล์แล้วครับผม
    แต่ยังไม่ได้

    ยังไงต้องขอบคุณมากนะครับ ทำให้ผมเปิดโลกทัศน์
    และสนุกกับการทำโปรแกรมครับ
    เพิ่งรู้ครับ ว่าสามารถส่ง SMS ฟรี!! ได้ด้วย
    เจ๋งจิงครับพี่

  57. platoosom says:

    อ่านบทความนี้ของผมครับ http://www.select2web.com/general/using-utf-8-final.html ว่าด้วยเรื่องการใช้งาน utf-8 กูเกิล calendar มันไม่ยอมรับ encoding แบบอื่น

    เมื่อเข้าไปในลิ้งก์นี้แล้ว ให้ดูที่ผมแนะนำไว้ ข้อ 5 และ 6

  58. SCADA.Josh says:

    เจ๋งสุดๆ ครับ
    ได้แล้วครับ

    เมื่อวานลองลองทดสอบดู ปรากฏว่าทดสอบไม่ผ่าน เนื่องจากหลายสาเหตุ ครับ
    - ไม่เปิดใช้งาน SSL
    - ไม่ได้ กำหนด include_path ใน php.ini
    - ติด Proxy บริษัท
    - PHP เวอร์ชันต่ำกว่า 5.1.4
    - ติดเรื่องส่งภาษาไทย

    ปัจจุบันเคลีร์ยครับ ขอบคุณมากครับผม
    ผมเริ่มสนใจ การทำ Application กับ Google แล้วล่ะครับ

  59. ton says:

    อุ้ย! เห็นหัวข้อแล้วผมตกใจเลย ไม่คิดว่า จะมีบทความที่เราจะสามารถทำเรื่องแบบนี้ได้เอง ขอบคุณก่อนเลยครับ แล้วรีบทำตามทันที ขอบคุณมากๆๆๆๆๆ เลยครับ

  60. ton says:

    ผมทำตามขั้นตอน
    เอามาเพิ่มเติมให้ครับ

    วิธีเปิดใช้งาน ssl
    http://adsense.google.com/support/bin/answer.py?hl=th&answer=35730

  61. TIK says:

    อยากพิมพ์ข้อความยาว ๆ แต่พิมพ์ไม่ได้

  62. platoosom says:

    - อยากพิมพ์ข้อความยาว ๆ แต่พิมพ์ไม่ได้ – ความยาวเป็นข้อกำหนดของทาง google เขาครับ

    วิธีที่พอจะทำได้คือ แบ่งข้อความของเราออกเป็นชุดย่อยๆ แล้วส่ง

  63. Puwanart says:

    สวัสดีครับ รบกวนนิดหนึ่งนะครับ เครื่องผมใช้ IIS ปรับแต่งให้รัน PHP ได้ และทำตามวิธีที่คุณ Platoosom แนะนำแล้วยังมีปัญหาครับ รบกวนด้วยนะครับ ขอบคุณครับ

    Fatal error: Uncaught exception ‘Zend_Gdata_App_HttpException’ with message ‘Unable to read response, or response is empty’ in D:\www\sms\Zend\Gdata\ClientLogin.php:140 Stack trace: #0 D:\www\sms\index.php(42): Zend_Gdata_ClientLogin::getHttpClient(‘myaccount’, ‘mypassword’, ‘cl’) #1 D:\www\sms\index.php(96): send_sms(‘myaccount’, ‘mypassword’, ‘send sms from m…’, ‘I send sms from…’) #2 {main} thrown in D:\www\sms\Zend\Gdata\ClientLogin.php on line 140

  64. platoosom says:

    ได้ใส่ username กับ password หรือยัง

  65. Puwanart says:

    ใส่แล้วครับ ผมสังเกตว่า ถ้าผมไม่เข้าหน้า google (gmail) แล้ว Login ค้างไว้ โปรแกรมไม่สามารถทำงานได้และจะฟ้อง error แบบที่ผมแจ้งน่ะครับ …ใช่หรือเปล่าครับ?

    คือผมไม่แน่ใจนะครับ มันไม่น่าจะเกี่ยวนะครับ ผมรบกวนคุณ Platoosom ช่วยแนะนำหน่อยสิครับ

  66. platoosom says:

    ไม่นะครับ ปกติไม่จำเป็นจะต้องล้อกอินค้างไว้ใดๆ ผมไม่แน่ใจว่าจะเกี่ยวกับ IIS หรือเปล่านะครับ ถ้ามีโฮสต์เป็นของตัวเอง ลองเอาไปรันบนโฮสต์ดูครับ

  67. ัtung says:

    ขอบคุณมากครับ เป็นประโยชน์มากๆ ลองใช้แล้วเจ๋งจริงๆ

  68. chilup says:

    คำถามที่ 1 มันสามารถส่งข้อความให้หลายๆ คน พร้อมกันได้ไหมอ่ะครับ

    คำถามที่ 2 มันส่งติดต่อกันไม่ได้หรอครับ ผมส่งติดต่อกันเกิน 5 ฉบับ ส่งต่อไม่ได้แล้วครับ

    ึคำถามที่ 3 ไม่มีค่าใช้จ่ายอะไรเลยใช่ไหมครับ

  69. platoosom says:

    คำตอบที่ 1 ส่งไม่ได้ครับ ถ้าจะส่งต้องลูปส่งไปทีละคน

    คำตอบที่ 2 ส่งติดต่อกันมากไม่ได้นะครับ เพราะว่าต้องเข้าใจว่ากูเกิลมันก็กลัวแสปมเป็น

    คำตอบที่ 3 ไม่มีล้านเปอร์เซ็นต์ครับ สำหรับข้อความที่ออกมาจากกูเกิล ถ้าจะมีก็เฉพาะตอนท่านเปิด SMS ผมไม่แน่ใจว่าเดี๋ยวนี้เขายังเก็บกันอยู่หรือเปล่านะ TRUE DTAC ไม่เก็บ AIS ผมไม่แน่ใจเพราะว่ายังไม่ได้ทดสอบ ถ้าเป็นเมื่อก่อนสองปีที่แล้ว AIS เวลาเปิด SMS จะเสียตังส์

    กูเกิลรวย

  70. mandmod says:

    ขอบคุณครับ กับสิ่งดีๆ ที่คุณให้ ขอยืมคำพูดที่เจอมา

    คำขอบคุณสักพันครั้ง ไม่เท่ากับการแบ่งปันแค่ครั้งเดียว

  71. KU says:

    ขอทราบวิธีติดตั้ง เจ้าzendหน่อยคับ
    ผมโหลดโพเดอร์ zend ขึ้นโฮส เเล้ว
    ทํางัยต่อ คับ เห็นมีหลายไฟล์ ไม่รู้จะใช้ยังไง
    งงมากเลยอ่าคับ

  72. KU says:

    ถ้าเว็บเรามีพีเอชพี contact form ที่ส่งเข้าอีเมล์เรา
    แล้วอยากใ้ห้มันส่ง sms แจ้งเตือนไปมือถือเราด้วย
    เมื่อเวลามีคนส่งอะไรมา จะต้องทํางัยคับ งงมากมาย

  73. platoosom says:

    ตอบคุณ KU ไม่ต้องไปสนใจครับว่าในโฟลเดอร์ Zend มีอะไรบ้าง

    ให้เอาไว้ในโฟลเดอร์เดียวกับโฟลเดอร์ที่เราเก็บสคริปต์ ของเรา

    ดูคำสั่งนี้นะครับ require_once ‘Zend/Loader.php’; แสดงว่า โฟลเดอร์ Zend อยู่ในระดับเดียวกับไฟล์โค้ด ของเรา

    ส่วนที่ถามว่ามีคอนแท็กฟอร์มอยู่แล้วต้องการเพิ่มให้มันส่ง SMS ก็เอาโค้ด ส่ง SMS ไปเพิ่มเข้าในไฟล์เดิม

     

  74. KU says:

    โอ้วย..ขอบคุงมั้กๆ คับ คุงplatoosom
    สุดยอดจิงๆ สําเร็จเเล้ว ขอถามเพิ่มเติมนะครับ
    1. เวลาใช้ คือต้อง เปิดไฟล์ send_sms.php ในบาวร์เซอร์ กดenter ใช่มัยคับ
    2.  sms มันไม่ส่งตัว content มาด้วย มาเเต่ title อ่าคับ
    3. ผมอยากใ้ห้ contact form มันเเจ้ง sms แต่ไม่ทราบวิธี สคริปผมเป็นเเบบนี้
    คับ ไม่ทราบต้องนําไฟล์ send_sms.php ไม่เเทรกตรงบรรทัดไหนคับ

    <?php
    if(isset($_POST['submit'])) {
    $to =555@hotmail.com”;
    $subject = “Form Tutorial”;
    $name_field = $_POST['name'];
    $email_field = $_POST['email'];
    $message = $_POST['message'];
    $option = $_POST['radio'];
    $dropdown = $_POST['drop_down'];
     
    foreach($_POST['check'] as $value) {
    $check_msg .= “Checked: $value\n”;
    }
     
    $body = “From: $name_field\n E-Mail: $email_field\n $check_msg Option: $option\n Drop-Down: $dropdown\n Message:\n $message\n”;
     
    echo “Data has been submitted to $to!;
    mail($to, $subject, $body);
     
    } else {
    echo “blarg!;
    }
    ?>
  75. platoosom says:

    ตอบ 1. เราก็ต้องประยุกต์นำไปประกอบฟอร์มครับ ให้ยูสเซ่อร์ป้อนคำที่ต้องการส่ง แล้วเราก็ส่ง SMS เข้าโทรศัพท์

    ตอบ 2. ถูกต้องแล้วมันจะส่งแต่ไตเติลครับ ส่วนคอนเท้นท์นั้นเราใส่ไปเฉยๆ เพื่อให้รายการมันสมบูรณ์ ไม่งั้นเดี๋ยวกูเกิลมันจะไม่ส่ง SMS ให้เรา

    ตอบ 3.

    <?php
    function send_sms( $param_google_username , $param_google_password,$param_title,$param_content ){
     
    	/**
    	 * @Include Zend_Loader
    	 */
    	require_once 'Zend/Loader.php';
     
    	/**
    	 * @Load Zend_Gdata
    	 */
    	Zend_Loader::loadClass('Zend_Gdata');
     
    	/**
    	 * @Load Zend_Gdata_AuthSub
    	 */
    	Zend_Loader::loadClass('Zend_Gdata_AuthSub');
     
    	/**
    	 * @Load Zend_Gdata_ClientLogin
    	 */
    	Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
     
    	/**
    	 * @Load Zend_Gdata_HttpClient
    	 */
    	Zend_Loader::loadClass('Zend_Gdata_HttpClient');
     
    	/**
    	 * @Load Zend_Gdata_Calendar
    	 */
    	Zend_Loader::loadClass('Zend_Gdata_Calendar');
     
    	// Parameters for ClientAuth authentication
    	$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
    	$user = $param_google_username ;
    	$pass =$param_google_password ;
     
    	// Create an authenticated HTTP client
    	$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);
     
    	// Create an instance of the Calendar service
    	$service = new Zend_Gdata_Calendar($client);
     
    	// Create a new entry using the calendar service's magic factory method
    	$event= $service->newEventEntry();
     
    	// Populate the event with the desired information
    	// Note that each attribute is crated as an instance of a matching class
    	$event->title = $service->newTitle( $param_title );
     
    	//$event->where = array($service->newWhere("Mountain View, California"));
    	$event->content = $service->newContent( $param_content );
     
    	// Set the date using RFC 3339 format.
    	$startDate = date( "Y-m-d" );//"2009-01-15";
    	$startTime = date( "H:i" , strtotime("+3 minutes") );
    	$endDate = date( "Y-m-d" );
    	$endTime = date( "H:i" , strtotime("+6 minutes") );
    	$tzOffset = "+07";
     
    	$when = $service->newWhen();
    	$when->startTime = "{$startDate}T{$startTime}:00.000{$tzOffset}:00";
    	$when->endTime = "{$endDate}T{$endTime}:00.000{$tzOffset}:00";
     
    	// Create a new reminder object. It should be set to send an email
    	// to the user 10 minutes beforehand.
    	$reminder = $service->newReminder();
    	$reminder->method = "sms";
    	$reminder->minutes = "2";
     
    	$when->reminders = array($reminder);
     
    	$event->when = array($when);
     
    	// Upload the event to the calendar server
    	// A copy of the event as it is recorded on the server is returned
    	if ($newEvent = $service->insertEvent($event)){
     
    		return true ;
    	}else{
     
    		return false;
    	}
     
    } 
    ?>
    <?php
    if(isset($_POST['submit'])) {
    $to =555@hotmail.com”;
    $subject = “Form Tutorial”;
    $name_field = $_POST['name'];
    $email_field = $_POST['email'];
    $message = $_POST['message'];
    $option = $_POST['radio'];
    $dropdown = $_POST['drop_down'];
     
    foreach($_POST['check'] as $value) {
    $check_msg .= “Checked: $value\n”;
    }
     
    $body = “From: $name_field\n E-Mail: $email_field\n $check_msg Option: $option\n Drop-Down: $dropdown\n Message:\n $message\n”;
     
    echo “Data has been submitted to $to!;
    mail($to, $subject, $body);
     
     
     
    $google_username = "xxxxxxxxxxx"; // username เข้ากูเกิลของคุณ
    $google_password = "xxxxxxxxxxx"; // password เข้ากูเกิลของคุณ
     
    // ส่ง SMS
    send_sms( $google_username , $google_password , $subject ,$body );
     
     
     
     
    } else {
    echo “blarg!;
    }
    ?>
  76. KU says:

    มันเอ่อเร่ออ่าคับ
    Fatal error
    : Call to undefined function send_sms() in /home/www/virtual/555.com/htdocs/contact/contact.php on line 28

    บรรทัดที่ 28 คือ

    send_sms( $google_username , $google_password , $subject ,$body );

    สคริปส่งเมล์ผมอยู่โฟเดอร์ contat
    ส่วนไฟล์ send_sms.php อยู่ข้างนอก ในเว็บผมโฟเดอร์คร่าวๆ ก็ประมาณนี้คับ
    1. home
    2.service
    ..
    5.zend
    6. send_sms.php
    7. contact (สคริปเมล์ อยู่ข้างใน)

    ไม่รู้ว่าวางตําเเหน่งอะไรผิดที่ผิดทางรึปะอ่าครับ
     

  77. platoosom says:

    ถ้าอย่างนั้นต้องเอาโฟลเดอร์ Zend ไปไว้ในโฟลเดอร์ contact ครับ

  78. platoosom says:

    Fatal error: Call to undefined function มันแจ้งว่า เรากำลังเรียกใช้ฟังก์ชั่นที่ไม่มีอยู่จริง

    แสดงว่าคุณ KU ไม่ได้ก้อปฟังก์ชั่น send_sms ไปไว้ในไฟล์  contact form

    ในคอมเม้นท์ 75 ผมเขียนไว้ให้หมายความว่า ให้เอาฟังก์ชั่นนั้น ไปใส่ไว้ตรงหัวของไฟล์ แล้วแทรกการส่ง SMS ไว้หลังจากส่งอีเมล์

  79. KU says:

    สําเร็จเเล้ว ขอบคุง platoosom มากคับ
    ผมหนับหนุนเว็บท่านไป 2 ดอก อิอิ (ทําอยู่เหมือนกัน)

  80. platoosom says:

    ยินดีด้วยครับที่ทำได้แล้ว และขอบคุณมากครับสำหรับ 2 ดอก จากที่ผมแจ้งว่าจะลบคอมเม้นท์ด้านบน ตอนนี้ตัดสินใจใหม่แล้ว ว่าจะไม่ลบ เพราะกำลังจะออกแบบหน้าเว็บใหม่แล้ว

    ปัญหาเรื่องความสวยคงหมดไป เก็บคอมเม้นท์ไว้ เผื่อท่านอื่นจะได้เป็นแนวในการแก้ปัญหา

    สงสัยเราต้องรณรงค์เรื่องการจัด ประมาณว่าอ่านแล้วได้ประโยชน์ก็จัดไป 1 ดอก 2 ดอก เพื่อกำลังใจ

    คนไทยไม่ค่อยจะจัดให้กันเลย จัดไปเถอะครับ เป็นกำลังใจแก่เจ้าของเว็บ มันไม่ถึงกับรวยหรอก

  81. KU says:

    คับ เก็บคอมเม้นไว้ดีกว่า เพราะผมเจอเว็บท่านจากกลูเกิล
    แต่เรื่องรณรงค์เนี้ย…อย่าเชียวนะคับ โจ่งครึม..เด๋วโดนพีเกิลอุ้ม..
    มีคนโดนมาแล้ว..

    ปล.
    เดือนที่เเล้วได้คอมฯใหม่..จากพี่เิกิลนี้เเหละ..อิอิ
    เเนะนํา..ไม่ลบคอมเม้นดีเเล้วคับ
     

  82. me says:

    ช่วยแนะนำ Host free ที่สามารถใช้ส่ง sms ได้หน่อยคับ ขอบคุณไว้ล่วงหน้า :)

  83. platoosom says:

    ไม่มีครับ

  84. me says:

    ต้องเป็น Host เสียเงินเท่านั้นหรอคับ

  85. platoosom says:

    จริงๆแล้วน่าจะมีมั้งครับโฮสต์ที่รันสคริปต์ที่ผมเขียนขึ้นมาได้ แต่ถ้าจะใช้งานอย่างจริงจัง ไม่ควรใช้

    แต่ถ้าจะใช้เพื่อการทดสอบ ผมแนะนำให้ลองหาดูใน http://www.thaiseoboard.com ในนั้นแจกโฮสต์ฟรี เพื่อการทดสอบ กันอยู่บ่อยๆ

  86. DS_Ohm says:

    ขอบคุณมากมายครับ ผมส่งจาก localhost เครื่องผมได้เลย

    header (‘Content-type: text/html; charset=utf-8′);
    ใส่ตัวนี้ไว้บนหัวสุด เป็นไทยปกติครับ

  87. kingkong says:

    ขอโทษน่ะคับ ผมไม่มีความรู้เลย ผมเลยอยากรู้ลายละเอียดขอแบบล่ะเอียดจิงๆน่ะคับ
    ต้องใช้โปรแกรมเสริมอะไรบ้าง นอกจากโปรแกรมที่พี่ให้มา

    แล้วรายละเอียดการทำแต่ล่ะข้นตอนมีอะไนบ้าง ขอโทดน่ะคับพอดีไม่มีความรู้จิงๆ

    ขอบคุณล่วงหน้าคับ

  88. nadkk says:

    ไม่ต้องใช้อะไรเลยเพิ่มเลยคับตามที่พี่เขาบอกเลยคับ

  89. kingkong says:

    โค้ดที่ต้องเพิ่ม เพิมลงในไหนหรอคับ ช่วยอธิบายหน่อย เพิ่มในที่โฟนเดอร์ Zend หรือเพิ่มตรงไหนหรอคับ

  90. kingkong says:

    หากเป็นไปได้จะขอเมลของคนที่ทำได้แล้วเพื่อเอาไว้ปรึกษาหน่อยจะได้ไหมคับ

  91. kingkong says:

    ในโฟนเดอร์ Zend มีหลายไฟส์มาก แล้วจะนำส่วนขอโค้ดไว้ใส่ต้องไหน
    ช่วยอธิบายหน่อยน่ะคับ

    เริ่มงานไม่ถูก

  92. nadkk says:

    สร้างไฟล์ตามโค้ดนี้
    newEventEntry();

    // Populate the event with the desired information
    // Note that each attribute is crated as an instance of a matching class
    $event->title = $service->newTitle( $param_title );

    //$event->where = array($service->newWhere(“Mountain View, California”));
    $event->content = $service->newContent( $param_content );

    // Set the date using RFC 3339 format.
    $startDate = date( “Y-m-d” );//”2009-01-15″;
    $startTime = date( “H:i” , strtotime(“+3 minutes”) );
    $endDate = date( “Y-m-d” );
    $endTime = date( “H:i” , strtotime(“+6 minutes”) );
    $tzOffset = “+07″;

    $when = $service->newWhen();
    $when->startTime = “{$startDate}T{$startTime}:00.000{$tzOffset}:00″;
    $when->endTime = “{$endDate}T{$endTime}:00.000{$tzOffset}:00″;

    // Create a new reminder object. It should be set to send an email
    // to the user 10 minutes beforehand.
    $reminder = $service->newReminder();
    $reminder->method = “sms”;
    $reminder->minutes = “2″;

    $when->reminders = array($reminder);

    $event->when = array($when);

    // Upload the event to the calendar server
    // A copy of the event as it is recorded on the server is returned
    if ($newEvent = $service->insertEvent($event)){

    return true ;
    }else{

    return false;
    }

    }

    $google_username = “xxxxxxxxxxx”; // username เข้ากูเกิลของคุณ
    $google_password = “xxxxxxxxxxx”; // password เข้ากูเกิลของคุณ
    $title = “เรื่องนี้ต้องขยาย”;
    $content = “เนื่องจากนางสมศรีแอบรักกับนายสมชาย โดยพ่อสมปองไม่ทราบ”;

    // ส่ง SMS
    send_sms( $google_username , $google_password , $title ,$content );

    ?>
    ไว้ตำแหน่งเดียวกับ โฟวเดอร์ Zend
    ในโฟวเดอร์ Zend ไม่ต้องไปแก้อะไรเลยคับ

    ถ้าไม่ได้ลองทดสอบกับ Host นี้นะคับได้ผลแน่นอน 99 บาท ต่อ ปี
    http://www.myweb-zonehost.com/
    ที่ไม่ได้อาจเป็นเพราะยังไม่ได้เปิด OpenSSL คับ

  93. kingkong says:

    ผมขอเมลคุณได้ไหมคับ ไว้ปรึกษา

  94. kingkong says:

    ที่ผมหมายถึงคือ โค๊ด เอาไปวางในไหน โปรแกรมอะไร หรือไปตรงไหน หาที่วางโค๊ดไปถูก
    คือที่ผมรู้ว่ามีโคดอยู้ แต่ไม่รู้ว่านำโคดไปใส่ไปวางตรงในยังงัย
    อิอิอิอิอิ

    คนไม่เข้าใจ ขอโทดที

  95. nadkk says:

    เอาโคดไปวางในไฟล์ PHP คับ ตั้งชื่อไฟล์ตามความต้องการคับ

  96. kingkong says:

    ขอเมลไดไหมคับ ผมต้องทำงานชิ้นนี้เป็น มินิโปรเจค ผมเลยต้องคำปรึกษา อีกมาเลย ขอบคุณที่กรุณาคับ

  97. keng says:

    ผมเพิ่งจะหัดลองเล่น php ครับ
    ผมได้ลองทำตามคำแนะนำแล้ว แก็ไม่ได้ ไม่ทราบว่าผมได้ทำถูกรึป่าวนะครับ

    1.ผมก๊อปโค๊ดจากเวปนี้ทั้งหมดไว้ในไฟล์เดียวกัน ตั้งชื่อไว้ว่า send.php
    2.เปิดการใช้งาน openssl โดยการลบ ; หน้าคำสั่งในไฟล์ php.ini

    Error ที่เกิดขึ้นเป็นดังนี้
    Fatal error: Uncaught exception ‘Zend_Gdata_App_HttpException’ with message ‘Unable to Connect to ssl://www.google.com:443. Error #59012408: Unable to find the socket transport “ssl” – did you forget to enable it when you configured PHP?’ in C:\AppServ\www\GcalendarSMS\ZendGdata-1.7.3\library\Zend\Gdata\ClientLogin.php:140 Stack trace: #0 C:\AppServ\www\GcalendarSMS\ZendGdata-1.7.3\library\send.php(40): Zend_Gdata_ClientLogin::getHttpClient(‘username’, ‘password’, ‘cl’) #1 C:\AppServ\www\GcalendarSMS\ZendGdata-1.7.3\library\send.php(96): send_sms(‘username’, ‘password’, ‘GCalendarSMS’, ‘Hello Mr.Keng’) #2 {main} thrown in C:\AppServ\www\GcalendarSMS\ZendGdata-1.7.3\library\Zend\Gdata\ClientLogin.php on line 140

    เมื่อเปิดไปดูใน
    C:\AppServ\php5\extras\openssl ก็พบ openssl นะครับ

    รบกวนผู้รู้ทั้งหลายมาชี้ทางสว่างด้วยนะครับ

    ขอบคุณมากครับ

  98. nightmare says:

    ติด proxy น่ะครับ ไม่ทราบว่าทำยังไงเหรอครับ ลอง set ค่าใน php.ini แล้วก็ยังไม่ได้ ลองตามอ่านความเห็นของคนอื่น ๆ ก็อไม่เห็นมีบอก บอกแต่ว่าผ่านหมดแล้วแต่ไม่ได้อธิบายรายละเอียดไว้ แต่เท่าที่ลองคิดดูมันก็น่าจะ set ที่ php.ini ก็น่าจะผ่านแล้วแต่ก็ยังไม่ผ่านเลยอยากสอบถามวิธีการหน่อยครับ

  99. nightmare says:

    อ่อเมื่อกี้ลืมบอกไปครับว่า พอไปลองด้านนอกที่ไม่ผ่าน proxy มันสามารถออกได้นะครับแต่พอมาลองกับหน่วยงานแล้วมันติดน่ะครับ

  100. kingkong says:

    คนไหนทำได้แล้วผมจะขอเมลได้ไหมคับ

  101. ree says:

    แล้วมันไม่ละเมิดไรไครใช่มั้ยคะ

  102. platoosom says:

    ไม่ละเมิดครับ เพราะว่ามันจะส่งหาได้เฉพาะคนที่เรารู้รหัสผ่านเข้า google ของเขาเท่านั้น

    นั่นหมายความว่า ถ้าไม่ใช่เพื่อน ก็แฟน พ่อ แม่ พี่ น้อง ญาติ

  103. sirirat says:

    สามารถส่งได้มากกว่า 1 เบอร์มั้ยค่ะ ต้องตั้งค่าตรงไหน

  104. platoosom says:

    ส่งได้ครับ ก็ใช้วิธี loop ส่งไปทีละเบอร์ ถ้า 5 รอบมันก็ได้แล้ว 5 เบอร์

  105. ดีครับทุกคน ผมได้ลองอัพโหลดสคริปขึ้นไปบน Server จริงแล้ว แต่มีปัญหาตรงที่เราเพิ่มรายการเข้าไปแล้วมันกลับไปเพิ่มอยู่ในรายการของเมื่อวาน
    (เช่นวันนี้เป็นวันที่ 29 เม.ย.แต่เราเพิ่มเข้าไปกลับไปอยู่ในรายการของวันที่ 28 เม.ย. แทน) ผมงงเลยครับ ไม่ทราบว่าพี่ๆทั้งหลาย ท่านใดที่สามารถให้ความช่วยเหลือปรึกษาได้ครับ ขอคำปรึกษาด้วยนะครับ ขอบคุณครับ..

  106. platoosom says:

    ตอบคุณ สุรพจน์
    เหตุการณ์ที่ท่านเจอ เกิดจากเวลาของเซิฟเวอร์ เขาตั้งช้าไปหนึ่งวัน วิธีแก้ก็คือแจ้งไปบอกทางเซิฟเวอร์ว่า เวลาเซิฟเวอร์ท่านช้าเด้อ

    ้ถ้าจะทดสอบด้วยตัวเองว่า เวลาเขาตั้งไว้ผิดปกติจริงหรือไม่ ให้สร้างไฟล์ php แล้วเขียนคำสั่ง echo date(‘d-m-Y H:i:s’); รันแล้วดูว่าเวลาบนเซิฟเวอร์ถูกต้องหรือเปล่า

  107. sirirat says:

    ส่งได้ครับ ก็ใช้วิธี loop ส่งไปทีละเบอร์ ถ้า 5 รอบมันก็ได้แล้ว 5 เบอร์

    หมายถึง ให้ loop ตรงนี้หร๋อค่ะ

    $google_username = “xxxxxxxxxxx”; // username เข้ากูเกิลของคุณ
    $google_password = “xxxxxxxxxxx”; // password เข้ากูเกิลของคุณ
    $title = “เรื่องนี้ต้องขยาย”;
    $content = “เนื่องจากนางสมศรีแอบรักกับนายสมชาย โดยพ่อสมปองไม่ทราบ”;
    // ส่ง SMS
    send_sms( $google_username , $google_password , $title ,$content );

    ซึ่ง แต่ละเบอร์อาจจะต้องใช้ username และ password คนละตัวกันงี้ใช่ป่ะค่ะ

    พอดีเห็นใน google calendar สามารถเพิ่มปฏิทินของเพื่อนได้ (อันนี้เกี่ยวกันมั้ยค่ะ)

  108. ไม่ว่า Hosting ฟรีจากประเทศไหน
    ใช้โค้ดนี้คับเปลี่ยนเวลาเป็นประเทศไทย
    เอาไปใส่ไว้ด้านบนของหัวเว็บนะคับ

    date_default_timezone_set(“Asia/Bangkok”);

    Crdit : nadkk

  109. poom says:

    อยากให้ส่งสถานที่ได้ด้วยครับ จะต้องเขียนอย่างไร ครับ

  110. ssveess says:

    รบกวนสอบถามหน่อยครับ

    1.มีวิธีที่จะสามารถกำหนด วัน/เดือน/ปี และ เวลา (เริ่มและจบ)ได้ไหมครับ
    กรณีที่ผมไม่อยากให้ บันทึก ณ วันที่ทำรายการครับ อาธิ ล่วงหน้า หรือ ย้อนหลัง

    2.แล้วกรณีที่จะส่งให้ได้มากกว่า 1 เบอร์ ต้องเริ่มต้น Loop ตรงไหนครับ

    ขอบคุณมากครับ
    วศิน

  111. platoosom says:
    $startDate = date( "Y-m-d" );//"2009-01-15";
    $startTime = date( "H:i" , strtotime("+3 minutes") );
    $endDate = date( "Y-m-d" );
    $endTime = date( "H:i" , strtotime("+6 minutes") );
    $tzOffset = "+07";

    ตรงนี้ไงครับ จะกำหนดให้มันลงปีหน้า ก็ยังได้

  112. ssveess says:

    ครับผม ทำได้แล้วครับ
    ผมทำฟอร์ม ให้เลือก เวลาที่จะส่ง

    แต่การที่จะให้ส่งได้มากกว่า 1 เบอร์อะครับ
    ท่านเจ้าของเคยแจ้งว่าให้ Loop ไม่ทราบว่า
    ต้องเริ่ม Loop จากตรงไหนครับ

    ช่วยแนะนำ Code ด้วย ก็จะดีมากเลยครับ

    ขอบคุณมากครับ
    วศิน

  113. ae says:

    ลองแล้วค่ะ แต่มันตายที่ บรรทัด

    $newEvent = $service->insertEvent($event) นี้อ่ะค่ะ ทำไงดีคะ

  114. Marnoch says:

    ดีมากครับ และมีประโยชน์มากๆๆด้วยเช่นกัน ผมให้ 5 ดาวเลยครับ ผมเริ่มหัดเล่น php อ่านแล้วพอเข้าใจบ้าง งูงูปลาปลา

แสดงความเห็น

ชื่อ *
Email *
Website
ความคิดเห็น