ITTIRIT T.
2 min readJul 2, 2019

[PHP]Linebot+Google Sheet และการค้นหาซ้ำซ้อน

เนื่องจากวันก่อนมีคนถามเรื่องการค้นหาและให้บอทตอบเป็นตัวเลือกเพื่อที่จะค้นหาต่อ

ก็เลยไปหาวิธีอยู่หลายวันและสรุปได้ว่า

ทำได้โดยการ get data json จาก google sheet แล้วนำ filter array มากรองคำค้นแรก จากนั้นบันทึก json ที่กรองแล้วกลับเข้าไฟล์ data.json และสร้างเงื่อนไขใน user อยู่ใน mode การค้นหาซ้ำ ตาม keyword ที่ให้เลือก

file ตัวอย่าง : https://itdev.win/bot.zip

เริ่มจากเตรียมข้อมูลที่ต้องการค้นหา (ตัวอย่าง)

เครื่องมือ > โปรแกรมแก้ไขสคริปต์

วางโค๊ดจากไฟล์ตัวอย่างลงไป ขออธิบายแค่ส่วนที่สำคัญ

var record = {};
record[‘id’] = dataRow[0];
record[‘name’] = dataRow[1];
record[‘num’] = dataRow[2];
record[‘other’] = dataRow[3];
// เพิ่ม dataRow ตามต้องการ record[‘ชื่อคอลั่ม’] = dataRow[เรียงไปเรื่อยๆ];
dataArray.push(record);

กดเผยแพร่ > ใช้งานเป็นแอพพลิเคชั่นเว็บ

ตรงนี้ถ้าติดปัญหาอะไร ค้นในกูเกิ้ลเจอแน่นอน >>>ไปต่อ

เมื่อเราได้ URL มาให้ลองเข้าดู

จะได้ข้อมูลที่ต้องการในรูปแบบ json เป็นที่เรียบร้อย

จากนั้นไปต่อที่ไฟล์ bot.php

ขออธิบายคร่าวๆ

line 44–51 : ใช้ array filter กรองด้วยคำค้นแรก

line 53–58 : เมื่อกรองแล้ว นำผลลัพธ์ที่ได้ (ตัวอย่าง [2][4][7] )

มาเรียงใหม่เป็น [0][1][2][3] และเลือก keyword2 จากผลลัพธ์ reply กลับไปหา user

และบันทึกข้อมูลที่ผ่านการกรองแล้วไว้ที่ data.json

เมื่อ user reply keyword2 กลับมา ก็ใช้หลักการเดิม filter อีกครั้ง (keyword2ต้องไม่มีข้อมูลซ้ำ)

และ put mode ให้กลับไปสู่ Normal mode

สามารถลองใช้ได้ที่ @zzb9597z

key1 : BKK DMK KBV SIN URT

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Responses (1)

Write a response