ระบบ Action ของ Tommy
Tommy Action เป็นระบบที่อ้างอิงหลักการ IFTTT ซึ่งใช้ออบเจกต์ต่อไปนี้: Task, Trigger, Condition และ Activity
มินิโปรแกรมแต่ละตัวอาจกำหนด Action จำนวนหนึ่งที่สามารถใช้รันโค้ดแบบไดนามิกและดำเนินงานตามที่กำหนดซึ่งอัปเดตส่วนติดต่อผู้ใช้แบบเรียลไทม์
Task
Task จะรันบล็อกโค้ดตามช่วงเวลาที่กำหนดไว้ และจุด Trigger เมื่อมีข้อมูลพร้อมใช้งานหรือเมื่อเงื่อนไขภายในเป็นจริง โค้ดที่ Task รันนั้นเป็นอิสระจากการนำไปใช้งานโดยสิ้นเชิง แต่ข้อมูลที่สคริปต์ส่งออกมาต้องอยู่ในรูปแบบที่ Tommy เข้าใจได้ เพื่อให้ระบบ Action สามารถรัน Trigger ที่ถูกต้องได้
Trigger
Trigger ถูกรันโดย Task และส่งเข้าไปในระบบ Action เพื่อให้ Activity ประมวลผล
Condition
Condition คือตัวประมวลผลที่เป็นทางเลือกซึ่งตรวจสอบข้อมูล Trigger เพื่อพิจารณาว่าสามารถรัน Activity ได้หรือไม่ Condition ใช้ตัวดำเนินการเชิงเงื่อนไข เช่น greater_than, less_than หรือ equal_to ในการประมวลผลข้อมูล Trigger
Activity
Activity จัดการข้อมูล Trigger และทำสิ่งใดสิ่งหนึ่งกับข้อมูลนั้น ซึ่งอาจรวมถึงการส่งอีเมล การแจ้งเตือนผู้ใช้ หรือแทบทุกอย่างที่คุณจินตนาการได้ด้วย API ภายในหรือของบุคคลที่สามภายนอกของเรา
การกำหนด Action
วิธีที่ง่ายที่สุดในการเรียนรู้วิธีกำหนด action คือการทำวิศวกรรมย้อนกลับจากสิ่งที่สร้างไว้แล้ว ยกตัวอย่างเช่นมินิโปรแกรม Poke ที่กำหนด action ซึ่งรัน Task (poke.tasks.default), Trigger (poke.triggers.default) และ Activity (_chat.activities.send_message_)
แล้วเกิดอะไรขึ้นจริง ๆ ในกรณีนี้? มันค่อนข้างตรงไปตรงมาเมื่อคุณเข้าใจไวยากรณ์แล้ว
พารามิเตอร์ timer จะบอกให้ระบบ action รัน task ที่ระบุทุกวันเวลา 9 นาฬิกา
ในกรณีของเรา task ที่ถูกรันคือ poke.tasks.default ซึ่งมีหน้าที่เพียงอย่างเดียวคือการจุด trigger poke.triggers.default ทั้ง task และ trigger เหล่านี้ถูกกำหนดไว้ในไฟล์ manifest.yml ซึ่งสามารถดูเนื้อหาทั้งหมดได้ภายใน SDK
การกำหนด action ของเราระบุ chat.activities.send_message เป็น activity ที่จะถูกรันเมื่อ trigger poke.triggers.default ถูกจุด ดังที่คุณอาจเดาได้จากคำนำหน้า chat. บนพารามิเตอร์ activity นั้น activity chat.activities.send_message นั้นแท้จริงแล้วถูกกำหนดไว้ภายนอกใน Tommy chat และวัตถุประสงค์เพียงอย่างเดียวของ activity นี้คือการส่งข้อความแชทเมื่อถูกรัน นี่คือวิธีที่คุณอ้างอิง task, trigger และ activity ของส่วนเสริมภายนอกเมื่อเขียนโปรแกรมมินิโปรแกรมของคุณเอง โปรดทราบว่าหากคุณอ้างอิงรายการภายนอก คุณต้องเพิ่มรายการเหล่านั้นลงในรายการ dependency
อีกสิ่งที่สำคัญมากที่ต้องกล่าวถึงคือพารามิเตอร์ mappings ซึ่งอธิบายว่า activity จะใช้ข้อมูล trigger อย่างไร ในกรณีของเรา trigger รับเพียงพารามิเตอร์ message ธรรมดา และ trigger ของเราก็ส่งออกพารามิเตอร์ message ด้วยเช่นกัน ดังนั้นสิ่งที่เราทำก็คือการจับคู่พารามิเตอร์ message ของ trigger เข้ากับ activity