รบกวนขอคำแนะนำครับ eventMemberJoined ไม่ทำงานครับ
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา รบกวนขอคำแนะนำครับ eventMemberJoined ไม่ทำงานครับ
รบกวนขอคำแนะนำครับ eventMemberJoined ไม่ทำงานครับ
ผมลองทำตามสคริปที่แอดมินบอกในหัวข้อ "แปลงข้อมูล ด้วย LINE bot sdk ใน LINE Messaging API ตอนที่ 6" ทุกอย่างเวิร์คและใช้งานได้หมดครับ มีเพียง eventMemberJoined ครับ ที่ไม่ทำงาน ไม่หือไม่อือครับ ไม่ว่าสมาชิกจะ joint เข้ามาใน Room หรือ Group มันก็ไม่ทำงานเลยครับ ผมต้องการให้มันทักทาย Welcome สมาชิกที่เข้า Room หรือ Group ที่หน้าห้องเลยนะครับ
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 | // ถ้ามีสมาชิกคนอื่น เข้ามาร่วมใน room หรือ group // room คือ สมมติเราคุยกับ คนหนึ่งอยู่ แล้วเชิญคนอื่นๆ เข้ามาสนทนาด้วย จะกลายเป็นห้องใหม่ // group คือ กลุ่มที่เราสร้างไว้ มีชื่อกลุ่ม แล้วเราเชิญคนอื่นเข้ามาในกลุ่ม เพิ่มร่วมสนทนาด้วย if (!is_null($eventMemberJoined)){ $arr_joinedMember = $eventObj->getEventBody(); $joinedMember = $arr_joinedMember[ 'joined' ][ 'members' ][0]; if (!is_null($groupId) || !is_null($roomId)){ if ($eventObj->isGroupEvent()){ foreach($joinedMember as $k_user=>$v_user){ if ($k_user== "userId" ){ $joined_userId = $v_user; } } $response = $bot->getGroupMemberProfile($groupId, $joined_userId); } if ($eventObj->isRoomEvent()){ foreach($joinedMember as $k_user=>$v_user){ if ($k_user== "userId" ){ $joined_userId = $v_user; } } $response = $bot->getRoomMemberProfile($roomId, $joined_userId); } } else { $response = $bot->getProfile($userId); } if ($response->isSucceeded()) { $userData = $response->getJSONDecodedBody(); // return array // $userData['userId'] // $userData['displayName'] // $userData['pictureUrl'] // $userData['statusMessage'] $textReplyMessage = 'สวัสดีครับ คุณ ' .$userData[ 'displayName' ]; } else { $textReplyMessage = 'สวัสดีครับ ยินดีต้อนรับ' ; } // $textReplyMessage = "ยินดีต้อนรับกลับมาอีกครั้ง ".json_encode($joinedMember); $replyData = new TextMessageBuilder($textReplyMessage); } |

คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
ความคิดเห็นที่
1
ไม่แน่ใจว่า Line เขาปรับอะไรไหม ไว้ลองแล้ว จะมาอัพเดทอีกที

บทความแนะนำที่เกี่ยวข้อง | |
---|---|
แปลงข้อมูล ด้วย LINE bot sdk ใน LINE Messaging API ตอนที่ 6 | อ่าน 19,355 |

ความคิดเห็นที่
2
ขอบคุณมากครับ

ความคิดเห็นที่
3
เท่าที่ทดสอบดู ยังใช้งานได้ปกติ แต่จะมีข้อสังเกต
ถ้าเราสร้าง GROUP แล้วเชิญ สมาชิกคนอื่น พร้อมกับ bot เข้ามาใน GROUP
BOT จะเข้ามาใน GROUP อัตโนมัติ เกิด Join Event ส่วนสมาชิกคนอื่น จะต้องกด Join หรือ เข้าร่วมก่อน
และเมื่อกดเข้าร่วม จะเกิด MEMBER JOIN Event ข้อความก็จะทักทาย จาก BOT ไปยังสมาชิกคนนั้นที่กดเข้าร่วม GROUP
ตามรูปแบบโค้ดที่เรากำหนดไว้ในตัวอย่าง
แต่ถ้าเป็น ROOM จะเป็นลักษณะ เราอยู่หน้า ที่กำลังคุยกับ BOT และต้องการเชิญคนอื่นเข้ามาคุยด้วย หรือ
เราคุยกับคนอื่นอยู่ และต้องการเชิญ ฺBOT และคนอื่นๆ เข้ามาคุยด้วย กรณี ROOM นี้ ตัว BOT และ คนอื่นๆ ที่ถูกเชิญ จะเพิ่มเอง
อัตโนมัติ โดยไม่ต้องกดเข้าร่วม แต่จะยังไม่เกิด Join Event ขึ้นในทันทีเหมือนกรณี GROUP โดย Join Event จะเกิดเมื่อมีใครคนใด
คนหนึ่งใน ROOM ทักหรือส่งข้อความเข้ามา ตัว Join Event ของ BOT ที่เข้าร่วม ROOM จึงทำงานและแจ้งว่าขอเข้าร่วมห้องสนทนา
ตามรูปแบบการทำงานของโค้ดตัวอย่าง และ MEMBER JOIN Event จะไม่เกิด หากถูกเชิญเข้าร่วมพร้อมกับ BOT ดังนั้น จะไม่มี
ข้อความทักทายไปยังคนอื่นที่ถูกเชิญพร้อม BOT แต่ถ้าเชิญคนอื่นๆ หลังจากมี BOT อยู่ใน ROOm แล้ว เช่น เชิญคนที่ 4 กรณีนี้จะมี
MEMBER JOIN Event ขึ้น และจะแสดงข้อความทักทายคนที่ถูกเชิญ หรือกรณี คนที่ถูกเชิญพร้อม BOT แต่ออกจาก ROOM ไป
และถ้ามีการเชิญเข้ามาใหม่ ซึ่งจะเป็นกรณีการเข้ามา หลังจาก ฺBOT อยู่ใน ROOM แล้ว กรณีนี้ จะเกิด MEMBER JOIN Event ขึ้น
และแสดงข้อความต้อนรับ
**
JOIN Event คือ Event ของ BOT
MEMBER JOIN Event คือ Event ของ สมาชิกอื่นๆ
**
หากทำทุกขั้นตอนแล้ว ไม่มี MEMBER JOIN Event เกิดขึ้นเลย ให้ตรวจสอบว่าใช้ PHP LINE SDK เวอร์ชั่น 3.7.0 ขึ้นไปหรือไม่
เพราะ MEMBER JOUN Event จะมีในเวอร์ชั่น 3.7.0 ถ้าเป็นเวอร์ชั่นที่ตำกว่า ให้อัพเดท เป็นเวอร์ชั่น 3.7.0 หรือเวอร์ชั่นล่าสุด
ตรวจสอบเวอร์ชั่นที่ใช้งานในไฟล์ composer.json
https://github.com/line/line-bot-sdk-php
ถ้าเราสร้าง GROUP แล้วเชิญ สมาชิกคนอื่น พร้อมกับ bot เข้ามาใน GROUP
BOT จะเข้ามาใน GROUP อัตโนมัติ เกิด Join Event ส่วนสมาชิกคนอื่น จะต้องกด Join หรือ เข้าร่วมก่อน
และเมื่อกดเข้าร่วม จะเกิด MEMBER JOIN Event ข้อความก็จะทักทาย จาก BOT ไปยังสมาชิกคนนั้นที่กดเข้าร่วม GROUP
ตามรูปแบบโค้ดที่เรากำหนดไว้ในตัวอย่าง
แต่ถ้าเป็น ROOM จะเป็นลักษณะ เราอยู่หน้า ที่กำลังคุยกับ BOT และต้องการเชิญคนอื่นเข้ามาคุยด้วย หรือ
เราคุยกับคนอื่นอยู่ และต้องการเชิญ ฺBOT และคนอื่นๆ เข้ามาคุยด้วย กรณี ROOM นี้ ตัว BOT และ คนอื่นๆ ที่ถูกเชิญ จะเพิ่มเอง
อัตโนมัติ โดยไม่ต้องกดเข้าร่วม แต่จะยังไม่เกิด Join Event ขึ้นในทันทีเหมือนกรณี GROUP โดย Join Event จะเกิดเมื่อมีใครคนใด
คนหนึ่งใน ROOM ทักหรือส่งข้อความเข้ามา ตัว Join Event ของ BOT ที่เข้าร่วม ROOM จึงทำงานและแจ้งว่าขอเข้าร่วมห้องสนทนา
ตามรูปแบบการทำงานของโค้ดตัวอย่าง และ MEMBER JOIN Event จะไม่เกิด หากถูกเชิญเข้าร่วมพร้อมกับ BOT ดังนั้น จะไม่มี
ข้อความทักทายไปยังคนอื่นที่ถูกเชิญพร้อม BOT แต่ถ้าเชิญคนอื่นๆ หลังจากมี BOT อยู่ใน ROOm แล้ว เช่น เชิญคนที่ 4 กรณีนี้จะมี
MEMBER JOIN Event ขึ้น และจะแสดงข้อความทักทายคนที่ถูกเชิญ หรือกรณี คนที่ถูกเชิญพร้อม BOT แต่ออกจาก ROOM ไป
และถ้ามีการเชิญเข้ามาใหม่ ซึ่งจะเป็นกรณีการเข้ามา หลังจาก ฺBOT อยู่ใน ROOM แล้ว กรณีนี้ จะเกิด MEMBER JOIN Event ขึ้น
และแสดงข้อความต้อนรับ
**
JOIN Event คือ Event ของ BOT
MEMBER JOIN Event คือ Event ของ สมาชิกอื่นๆ
**
หากทำทุกขั้นตอนแล้ว ไม่มี MEMBER JOIN Event เกิดขึ้นเลย ให้ตรวจสอบว่าใช้ PHP LINE SDK เวอร์ชั่น 3.7.0 ขึ้นไปหรือไม่
เพราะ MEMBER JOUN Event จะมีในเวอร์ชั่น 3.7.0 ถ้าเป็นเวอร์ชั่นที่ตำกว่า ให้อัพเดท เป็นเวอร์ชั่น 3.7.0 หรือเวอร์ชั่นล่าสุด
ตรวจสอบเวอร์ชั่นที่ใช้งานในไฟล์ composer.json
https://github.com/line/line-bot-sdk-php
บทความแนะนำที่เกี่ยวข้อง | |
---|---|
ส่งข้อความด้วย LINE bot sdk php สำหรับ LINE Messaging API ตอนที่ 2 | อ่าน 30,545 |
แปลงข้อมูล ด้วย LINE bot sdk ใน LINE Messaging API ตอนที่ 6 | อ่าน 19,355 |

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

ความคิดเห็นที่
5
ไฟล์ composer.json ล่าสุดของผมครับ
============================
============================
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 | { "name" : "linecorp/line-bot-sdk" , "description" : "SDK of the LINE BOT API for PHP" , "keywords" : [ "LINE" , "bot" , "sdk" ], "type" : "library" , "license" : "Apache-2.0" , "authors" : [ { "name" : "moznion" , "email" : "moznion@gmail.com" , "role" : "Retired" }, { "name" : "Satoru Yoshihara" , "email" : "vaduz0@gmail.com" , "role" : "Maintainer" }, { "name" : "Satoshi Shibuya" , "email" : "satosby@gmail.com" , "role" : "Maintainer" }, { "name" : "Shunsuke Mori" , "email" : "morimorim7180@gmail.com" , "role" : "Maintainer" } ], "require" : { "php" : ">=5.5" , "ext-curl" : "*" , "ext-json" : "*" , "ext-sockets" : "*" }, "require-dev" : { "phpunit/phpunit" : "^4.8.24||^5||^6" , "phpmd/phpmd" : "~2.4" , "squizlabs/php_codesniffer" : "~2.6||^3" , "indigophp/hash-compat" : "~1.1.0" , "ext-posix" : "*" }, "suggest" : { "apigen/apigen" : "Install with roave/better-reflection:dev-master to generate docs" , "roave/better-reflection" : "Required by apigen/apigen:dev-master" }, "autoload" : { "psr-4" : { "LINE\": " src/" } }, "autoload-dev" : { "psr-4" : { "LINE\Tests\": " tests/" } }, "scripts" : { "test" : "phpunit --debug tests" , "doc" : "apigen generate src --destination docs" , "cs" : "phpcs --standard=PSR2 src tests examples/EchoBot/src examples/EchoBot/public examples/KitchenSink/src examples/KitchenSink/public" , "md" : "phpmd --ignore-violations-on-exit src,examples/EchoBot/src,examples/EchoBot/public,examples/KitchenSink/src,examples/KitchenSink/public text phpmd.xml" } } |

ความคิดเห็นที่
6
1 2 | ส่งตัวอย่างมาให้ดูครับ ว่าบอทมันไม่ทักทายเวลามีสมาชิกใหม่เข้ามาใน Group ครับ จากรูปผมลองสร้าง Group ชื่อ Test Bot มีผมกับบอทอยู่ 2 คนใน Group จากนั้นผม invite สมาชิกที่ชื่อ Kiroh เข้ามาใหม่ หลังจากสมาชิก Join เข้า Group บอทก็ไม่ส่งทักทายสมาชิกแต่อย่างใดเลยครับ (บอทผมตัวที่ชื่อ TMA ครับ) |

ความคิดเห็นที่
7
น่าจะต้องไล่ดูตามที่อธิบายไป ไฟล์ composer.json เป็นไฟล์ที่เราติดตั้ง package ต่างๆ จะมีเวอร์ชั่นบอก ไม่ใช่ไฟล์ ของ line sdk
บทความแนะนำที่เกี่ยวข้อง | |
---|---|
แปลงข้อมูล ด้วย LINE bot sdk ใน LINE Messaging API ตอนที่ 6 | อ่าน 19,355 |

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