สอบถามเรื่อง postback action ใน Line ต้องการดึงค่า data ใน postback ต้องทำอย่างไรครับ
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามเรื่อง postback action ใน Line ต้องการดึงค่า data ใน postback ต้องทำอย่างไรครับ
สอบถามเรื่อง postback action ใน Line ต้องการดึงค่า data ใน postback ต้องทำอย่างไรครับ
ผมมีโค้ดดังนี้
actions=[
type= "postback",
label='postback',
display_text='postback text',
data='itemid=1'
]
ต้องการดึง itemid ใส่ใน ตัวแปร $item เมื่อผู้ใช้กดปุ่ม เพื่อที่จะส่งค่าไปค้นหาใน db ต้องทำอย่างไรครับ
เช่น
SELECT * FROM tables WHERE id = '$item'
ผมติดตรงที่ค่ามันไม่ส่งมา ไม่ทราบว่าต้องดึงแปปไหนครับ

คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
ความคิดเห็นที่
1
ดูแนวทางตามลิ้งค์ด้านล่าง
หรือดูแนวทางการแปลง ข้อมูล json_data เป็น object และการแปลงเป็นตัวแปร array ประมาณนี้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // ถ้าเป็น Postback Event if (! is_null ( $eventPostback )){ $dataPostback = NULL; $paramPostback = NULL; // แปลงข้อมูลจาก Postback Data เป็น array parse_str ( $eventObj ->getPostbackData(), $dataPostback ); // ดึงค่า params กรณีมีค่า params $paramPostback = $eventObj ->getPostbackParams(); // ทดสอบแสดงข้อความที่เกิดจาก Postaback Event $textReplyMessage = "ข้อความจาก Postback Event Data = " ; $textReplyMessage .= json_encode( $dataPostback ); $textReplyMessage .= json_encode( $paramPostback ); $replyData = new TextMessageBuilder( $textReplyMessage ); } |
หรือดูแนวทางการแปลง ข้อมูล json_data เป็น object และการแปลงเป็นตัวแปร array ประมาณนี้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | $jsonData = ' { "events" : [ { "type" : "postback" , "replyToken" : "ค่า replyToken ของเราที่สนทนากับ bot" , "source" : { "userId" : "ไอดีของ user line ของเรา" , "type" : "user" }, "timestamp" : 1510845266945, "postback" : { "data" : "action=buy&item=100" } } ] } '; $eventObj = json_decode( $jsonData ); $dataVal = $eventObj ->events[0]->postback->data; parse_str ( $dataVal , $arrData ); var_dump( $arrData ); echo $arrData [ 'action' ]; // buy echo $arrData [ 'item' ]; // 100 |
บทความแนะนำที่เกี่ยวข้อง | |
---|---|
การใช้งาน Template Message ใน LINE Messaging API ตอนที่ 3 | อ่าน 23,644 |
แปลงข้อมูล ด้วย LINE bot sdk ใน LINE Messaging API ตอนที่ 6 | อ่าน 19,357 |

ความคิดเห็นที่
2
ขอบคุณครับ
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 | แล้วถ้ากรณีนี้ ต้อง ดึงค่ายังไงครับ "type" => "button" , "style" => "primary" , "action" => [ // "type" => "message", // "label" => "Track", // "text" => "@Track" "type" => "postback" , "label" => "Track" , "data" => "repairID_pb=100" , "text" => "@Track" ] ---------------------------------------------------------------------------- if (! is_null ( $events [ 'events' ])) { $message = array (); $message [ 'lawmessage' ] = $content ; $message [ 'userLineToken' ] = $access_token ; // Access Token จาก Channel LINE DEV $message [ 'line_notify' ] = $line_notify ; // Access Token จาก LINE Bot Notify foreach ( $events [ 'events' ] as $event ) { $message [ 'replyToken' ] = $event [ 'replyToken' ]; // Reply Token มีอายุ 30 วินาที $message [ 'userId' ] = $event [ 'source' ][ 'userId' ]; // userId userId ID ของ User ต่อ 1 Provider เดียวกัน $message [ 'userType' ] = 'u' ; // กำหนดประของ user ที่ตอบบนช่องแชท $message [ 'eventType' ] = $event [ 'type' ]; // ประเภทของข้อความ $message [ 'messageType' ] = $event [ 'message' ][ 'type' ]; $message [ 'message' ] = $event [ 'message' ][ 'text' ]; // ข้อความประเภท text $message [ 'messageId' ] = $event [ 'message' ][ 'id' ]; // ID ของข้อความ $message [ 'messageTitle' ] = $event [ 'message' ][ 'title' ]; // ค่า Title จาก location $message [ 'messageAddress' ] = $event [ 'message' ][ 'address' ]; // ค่า Address จาก location $message [ 'messageLatitude' ] = $event [ 'message' ][ 'latitude' ]; // ค่า Latitude จาก location $message [ 'messagelongitude' ] = $event [ 'message' ][ 'longitude' ]; // ค่า longitude จาก location $message [ 'messagestickerId' ] = $event [ 'message' ][ 'stickerId' ]; // ค่า stickerId จาก Sticker $message [ 'messagepackageId' ] = $event [ 'message' ][ 'packageId' ]; // ค่า packageId จาก Sticker } } |

ขอบคุณทุกการสนับสนุน
![]()