ตอนนี้จะกล่าวถึงการสมัครเข้าใช้งาน Facebook Messenger ครับ ความจริงแล้ว ท่านสามารถไปทำตามขั้นตอนที่ Facebook เตรียมไว้ให้ได้เลยที่ https://developers.facebook.com/docs/messenger-platform/guides/setup ดังนั้นจะข้ามไปสู่วิธีการนำเอาสิ่งที่ได้สร้างไว้ในตอนที่ 3 มาใช้เลย
เลือกเพจ (ตัวแทนของ Chatbot ของเราที่อยู่ฝั่ง Facebook) แล้วทาง Facebook จะทำการสร้าง Access Token ให้เรา โดยเพจแต่ละเพจจะมี Access Token ที่แตกต่างกัน และเราต้องบันทึกค่านี้ไว้ส่วนตัว เพื่อจะนำไปใช้ในขั้นตอนต่อไป
หมายเหตุ โปรดอย่าลืมทำตามขั้นตอนที่ 3.6 - 3.7 ในตอนที่ 3 เพื่อให้การเปลี่ยนแปลงส่งผลด้วยนะ ครับ
หมดแล้วครับ สำหรับขั้นตอนการสร้าง Facebook Messenge Chatbot เบื้องต้น คิดว่าน่าจะพอเป็นแนวทางในการศึกษาได้บ้าง ในทางปฏิบัติแล้ว การทำงานของ Chatbot นั้นทาง Facebook ได้เตรียมตัวอย่างและข้อมูลไว้ให้ศึกษาถึงการใช้ประโยชน์อีกหลายตัวอย่าง สามารถนำมาประยุกต์ใช้งานได้อีกหลายด้านเลยทีเดียว
[ตอนที่ 1] [ตอนที่ 2] [ตอนที่ 3]
การนำค่า Access Token มาใช้
เลือกรายการ Messenger -> การตั้งค่า แล้วไปที่ การสร้าง Tokenปรับปรุง Chatbot ของเราก่อน
ในตอนที่ 3 ผมได้ละค่าของตัวแปรไว้สองตัวใน chatbot.py คือ verify_token และ access_token ซึ่งในตอนนั้นเรายังไม่มีค่าให้ แต่ในตอนนี้เราได้รับค่าของตัวแปรนั้นแล้ว ซึ่งก็คือ Access Token ที่ Facebook กำหนดไว้ให้เรานั้นเอง เราก็นำค่าที่ได้ไปปรับปรุงใน chatbot.py ได้เลย เราจะได้ code ในขั้นตอนสุดท้ายดังนี้
from flask import Flask,request
import json
import requests
app = Flask(__name__)
#copy from Facebook
access_token = 'EAAIcM3ZCcEREBAIGU34OBm.....'
@app.route('/test',methods=['GET'])
def do_test():
return "Hello"
@app.route('/',methods=['GET'])
def verification_handle():
verify_token = request.args.get('hub.verify_token','')
print verify_token
challenge = request.args.get('hub.challenge', '')
if verify_token == access_token :
return challenge
else :
return "Wrong validation"
@app.route('/',methods=['POST'])
def incoming_message_handle():
#get data from request
payload = request.get_data()
#turn payload to json
json_data = json.loads(payload)
#extract entry, entry is an array
entry = json_data['entry']
#extract messaging from entry, messaging is an array
messaging = entry[0]["messaging"]
for item in messaging :
if "message" in item and "text" in item["message"] :
#extract sender from messaging
sender = item["sender"]
#extract incoming message from messaging
msg = item["message"]
#echo back to sender
echo_to_sender(sender["id"],msg["text"].encode('unicode_escape'))
#tell Facebook that every is alright
return json.dumps({'success':True}),200,{'Content-Type':'application/json'}
def echo_to_sender(sender_id,msg_txt):
# get this from Facebook manual
req = requests.post(
"https://graph.facebook.com/v2.6/me/messages",
params = {"access_token":access_token},
data = json.dumps({
"recipient":sender_id,
"message": msg_txt
}),
headers = {'Content-Type':'application/json'})
หมายเหตุ โปรดอย่าลืมทำตามขั้นตอนที่ 3.6 - 3.7 ในตอนที่ 3 เพื่อให้การเปลี่ยนแปลงส่งผลด้วยนะ ครับ
การกำหนด Webhook Endpoint URL
เลือกรายการ Webhook (ในภาพเป็นตัวอย่างที่ผมได้ทำไว้แล้วก่อนหน้า จึงเห็นค่า URL ปรากฏอยู่) เลือก URL ติดต่อกลับ จะเห็น popup ดังภาพ พิมพ์ URL ที่เราได้รับมาจาก Heroku ในขั้นตอนที่ 3 มากรอกในช่องหมายเลข 1 ในกรณีของผมคือ https://my-fbot.herokuapp.com/ นำเอา Access Token ที่เราบันทึกไว้จากขั้นตอนข้างต้นกรอกในช่องหมายเลข 2 คลิ๊ก "ตรวจสอบและบันทึก" หากขั้นตอนสำเร็จ หน้าจอจะปิดตัวเองแล้วกลับไปสู่หน้าจอเดิม หากทุกอย่างดำเนินไปด้วยไม่มีข้อผิดพลาดเกิดขึ้น หลังจากนี้ท่านควรจะสามารถทดสอบ Chatbot ของท่านได้แล้ว โดยการส่ง message ไปยังเพจที่เราใช้ในการสมัคร แล้ว Chatbot ก็จะส่งข้อความนั้นกลับมา[ตอนที่ 1] [ตอนที่ 2] [ตอนที่ 3]
ความคิดเห็น
แสดงความคิดเห็น