สร้างบอท ai whatsapp ด้วย python บริสุทธิ์
คู่มือนี้จะนำคุณผ่านกระบวนการสร้างบอท Whatsapp โดยใช้เมตา (เดิมชื่อ Facebook) คลาวด์ API ด้วย Pyr Python และ Flask โดยเฉพาะ นอกจากนี้เราจะรวมกิจกรรม WebHook เพื่อรับข้อความแบบเรียลไทม์และใช้ OpenAI เพื่อสร้างการตอบสนอง AI สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโครงสร้างของแอปพลิเคชัน Flask คุณสามารถอ้างถึงเอกสารนี้ได้
ข้อกำหนดเบื้องต้น
- บัญชี Meta Developer - หากคุณไม่มีบัญชีคุณสามารถสร้างบัญชี Meta Developer ได้ที่นี่
- แอพธุรกิจ - หากคุณไม่มีคุณสามารถเรียนรู้ที่จะสร้างแอพธุรกิจได้ที่นี่ หากคุณไม่เห็นตัวเลือกในการสร้างแอพธุรกิจให้เลือก อื่น ๆ > ถัดไป > ธุรกิจ
- ความคุ้นเคยกับ Python เพื่อติดตามการสอน
สารบัญ
- สร้างบอท ai whatsapp ด้วย python บริสุทธิ์
- ข้อกำหนดเบื้องต้น
- สารบัญ
- เริ่มต้นใช้งาน
- ขั้นตอนที่ 1: เลือกหมายเลขโทรศัพท์
- ขั้นตอนที่ 2: ส่งข้อความด้วย API
- ขั้นตอนที่ 3: กำหนดค่า webhooks เพื่อรับข้อความ
- เริ่มแอปของคุณ
- เปิดตัว ngrok
- รวม WhatsApp
- การทดสอบการรวม
- ขั้นตอนที่ 4: ทำความเข้าใจกับความปลอดภัยของ WebHook
- คำขอตรวจสอบ
- การตรวจสอบคำขอตรวจสอบ
- ตรวจสอบความถูกต้องของน้ำหนักบรรทุก
- ขั้นตอนที่ 5: เรียนรู้เกี่ยวกับ API และสร้างแอปของคุณ
- ขั้นตอนที่ 6: รวม AI เข้ากับแอปพลิเคชัน
- ขั้นตอนที่ 7: เพิ่มหมายเลขโทรศัพท์
- Datalumina
- บทเรียน
เริ่มต้นใช้งาน
- ภาพรวมและการตั้งค่า : เริ่มต้นการเดินทางของคุณที่นี่
- ค้นหาบอทของคุณ : บอทของคุณสามารถพบได้ที่นี่
- เอกสาร WhatsApp API : ทำความคุ้นเคยกับเอกสารอย่างเป็นทางการ
- คู่มือที่เป็นประโยชน์ : นี่คือคู่มือที่ใช้งูหลามสำหรับการส่งข้อความ
- เอกสาร API สำหรับการส่งข้อความ : ตรวจสอบเอกสารนี้
ขั้นตอนที่ 1: เลือกหมายเลขโทรศัพท์
- ตรวจสอบให้แน่ใจว่า WhatsApp ถูกเพิ่มลงในแอปของคุณ
- คุณเริ่มต้นด้วยหมายเลขทดสอบที่คุณสามารถใช้เพื่อส่งข้อความไปยังหมายเลขสูงสุด 5 หมายเลข
- ไปที่การตั้งค่า API และค้นหาหมายเลขทดสอบที่คุณจะส่งข้อความ
- ที่นี่คุณสามารถเพิ่มตัวเลขเพื่อส่งข้อความไป ป้อน หมายเลข WhatsApp ของคุณเอง
- คุณจะได้รับรหัสบนโทรศัพท์ของคุณผ่าน WhatsApp เพื่อยืนยันหมายเลขของคุณ
ขั้นตอนที่ 2: ส่งข้อความด้วย API
- รับโทเค็นการเข้าถึงตลอด 24 ชั่วโมงจากส่วนการเข้าถึง API
- มันจะแสดงตัวอย่างของวิธีการส่งข้อความโดยใช้คำสั่ง
curl ซึ่งสามารถส่งจากเทอร์มินัลหรือด้วยเครื่องมือเช่นบุรุษไปรษณีย์ - ลองแปลงเป็นฟังก์ชั่น Python ด้วยไลบรารีคำขอ
- สร้างไฟล์
.env ตาม example.env และอัปเดตตัวแปรที่ต้องการ ตัวอย่างวิดีโอที่นี่ - คุณจะได้รับข้อความ "Hello World" (คาดว่าจะล่าช้า 60-120 วินาทีสำหรับข้อความ)
การสร้างการเข้าถึงที่ใช้งานได้นานขึ้น 24 ชั่วโมง
- สร้างผู้ใช้ระบบที่ระดับบัญชีธุรกิจเมตา
- ในหน้าผู้ใช้ระบบกำหนดค่าสินทรัพย์สำหรับผู้ใช้ระบบของคุณกำหนดแอพ WhatsApp ของคุณด้วยการควบคุมเต็มรูปแบบ อย่าลืมคลิกปุ่มบันทึกการเปลี่ยนแปลง
- ดูขั้นตอนที่ 1 ที่นี่
- ดูขั้นตอนที่ 2 ที่นี่
- ตอนนี้คลิก
Generate new token และเลือกแอพจากนั้นเลือกระยะเวลาที่โทเค็นการเข้าถึงจะถูกต้อง คุณสามารถเลือก 60 วันหรือไม่หมดอายุ - เลือกการอนุญาตทั้งหมดเนื่องจากฉันพบข้อผิดพลาดเมื่อฉันเลือก WhatsApp เท่านั้น
- ยืนยันและคัดลอกโทเค็นการเข้าถึง
ตอนนี้เราต้องค้นหาข้อมูลต่อไปนี้บน แผงควบคุมแอพ :
- app_id : "<your-whatsapp-business-app_id>" (พบได้ที่ App Dashboard)
- app_secret : "<your-whatsapp-business-app_secret>" (พบได้ที่ App Dashboard)
- ผู้รับ _waid : "" (นี่คือ whatsapp id ของคุณ, เช่นหมายเลขโทรศัพท์ตรวจสอบให้แน่ใจว่ามีการเพิ่มลงในบัญชีตามที่แสดงในข้อความทดสอบตัวอย่าง)
- เวอร์ชัน : "v18.0" (เวอร์ชันล่าสุดของ Meta Graph API)
- access_token : "" (สร้างในขั้นตอนก่อนหน้า)
คุณสามารถส่งข้อความประเภทเทมเพลตเป็นข้อความแรกของคุณถึงผู้ใช้เท่านั้น นั่นเป็นเหตุผลที่คุณต้องส่งการตอบกลับก่อนที่เราจะดำเนินการต่อ ใช้เวลา 2 ชั่วโมงในการคิดออก
ขั้นตอนที่ 3: กำหนดค่า webhooks เพื่อรับข้อความ
โปรดทราบว่านี่เป็นส่วนที่ยากที่สุดของบทช่วยสอนนี้
เริ่มแอปของคุณ
- ทำให้คุณมีการติดตั้ง Python หรือสภาพแวดล้อมและติดตั้งข้อกำหนด:
pip install -r requirements.txt - เรียกใช้แอพ Flask ของคุณในพื้นที่โดยดำเนินการ run.py
เปิดตัว ngrok
ขั้นตอนด้านล่างนี้นำมาจากเอกสาร NGROK
คุณต้องการโดเมน Ngrok แบบคงที่เนื่องจาก Meta ตรวจสอบโดเมนและใบรับรอง NGROK ของคุณ!
เมื่อแอปของคุณทำงานได้สำเร็จใน LocalHost มาให้เราได้รับบนอินเทอร์เน็ตอย่างปลอดภัยโดยใช้ NGROK!
- หากคุณยังไม่ได้เป็นผู้ใช้ Ngrok เพียงลงทะเบียนเพื่อรับ Ngrok ฟรี
- ดาวน์โหลดตัวแทน NGROK
- ไปที่แผงควบคุม Ngrok คลิก Authtoken ของคุณและคัดลอก Authtoken ของคุณ
- ทำตามคำแนะนำเพื่อรับรองความถูกต้องของตัวแทน NGROK ของคุณ คุณต้องทำสิ่งนี้เพียงครั้งเดียว
- ในเมนูด้านซ้ายขยายขอบคลาวด์แล้วคลิกโดเมน
- ในหน้าโดเมนคลิก + สร้างโดเมนหรือ + โดเมนใหม่ (ที่นี่ทุกคนสามารถเริ่มต้นด้วยหนึ่งโดเมนฟรี)
- เริ่ม Ngrok โดยเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัลบนเดสก์ท็อปในพื้นที่ของคุณ:
ngrok http 8000 --domain your-domain.ngrok-free.app
- Ngrok จะแสดง URL ที่แอปพลิเคชัน LocalHost ของคุณสัมผัสกับอินเทอร์เน็ต (คัดลอก URL นี้เพื่อใช้กับ Meta)
รวม WhatsApp
ในแดชบอร์ดแอป Meta ให้ไปที่ WhatsApp> การกำหนดค่าจากนั้นคลิกปุ่มแก้ไข
- ในป๊อปอัพ URL การโทรกลับของ WebHook ให้ป้อน URL ที่จัดทำโดยตัวแทน NGROK เพื่อเปิดเผยแอปพลิเคชันของคุณไปยังอินเทอร์เน็ตในฟิลด์ URL การโทรกลับโดยมี/webhook ในตอนท้าย (เช่น https://myexample.ngrok-free.app/webhook ).
- ป้อนโทเค็นการตรวจสอบ สตริงนี้ถูกตั้งค่าโดยคุณเมื่อคุณสร้างจุดสิ้นสุดของ WebHook คุณสามารถเลือกสตริงที่คุณชอบ ตรวจสอบให้แน่ใจว่าได้อัปเดตสิ่งนี้ในตัวแปรสภาพแวดล้อม
VERIFY_TOKEN ของคุณ - หลังจากที่คุณเพิ่ม webhook ลงใน WhatsApp แล้ว WhatsApp จะส่งคำขอโพสต์การตรวจสอบไปยังแอปพลิเคชันของคุณผ่าน Ngrok ยืนยันแอพ LocalHost ของคุณได้รับการตรวจสอบความถูกต้องรับคำขอและบันทึก
WEBHOOK_VERIFIED ในเทอร์มินัล - กลับไปที่หน้าการกำหนดค่าคลิกจัดการ
- บนป๊อปอัพ WebHook Fields คลิกสมัครสมาชิกฟิลด์ ข้อความ เคล็ดลับ: คุณสามารถสมัครสมาชิกหลายฟิลด์
- หากแอพ Flask และ Ngrok ของคุณกำลังทำงานอยู่คุณสามารถคลิกที่ "ทดสอบ" ถัดจากข้อความเพื่อทดสอบการสมัครสมาชิก คุณได้รับข้อความทดสอบในกรณีบน หากเป็นกรณีนี้ WebHook ของคุณจะถูกตั้งค่าอย่างถูกต้อง
การทดสอบการรวม
ใช้หมายเลขโทรศัพท์ที่เกี่ยวข้องกับผลิตภัณฑ์ WhatsApp ของคุณหรือใช้หมายเลขทดสอบที่คุณคัดลอกมาก่อน
- เพิ่มหมายเลขนี้ลงในผู้ติดต่อแอป WhatsApp ของคุณจากนั้นส่งข้อความไปยังหมายเลขนี้
- ยืนยันแอพ LocalHost ของคุณได้รับข้อความและบันทึกทั้งส่วนหัวและร่างกายในเทอร์มินัล
- ทดสอบว่าบอทตอบกลับคุณในกรณีบน
- ตอนนี้คุณได้บูรณาการบอทแล้ว! -
- ตอนนี้ถึงเวลาที่จะสร้างสิ่งที่ยอดเยี่ยมด้วยสิ่งนี้
ขั้นตอนที่ 4: ทำความเข้าใจกับความปลอดภัยของ WebHook
ด้านล่างนี้เป็นข้อมูลบางส่วนจากเอกสาร Meta Webhooks API เกี่ยวกับการตรวจสอบและความปลอดภัย มันถูกนำไปใช้ในรหัสแล้ว แต่คุณสามารถอ้างอิงได้เพื่อให้เข้าใจได้ดีขึ้นว่าเกิดอะไรขึ้นในการรักษาความปลอดภัย
คำขอตรวจสอบ
แหล่งที่มา
เมื่อใดก็ตามที่คุณกำหนดค่าผลิตภัณฑ์ WebHooks ในแดชบอร์ดแอพของคุณเราจะส่งคำขอ GET ไปยัง URL ปลายทางของคุณ คำขอการตรวจสอบรวมถึงพารามิเตอร์สตริงแบบสอบถามต่อไปนี้ต่อท้ายไปที่ส่วนท้ายของ URL ปลายทางของคุณ พวกเขาจะมีลักษณะเช่นนี้:
GET https://www.your-clever-domain-name.com/webhook?
hub.mode=subscribe&
hub.challenge=1158201444&
hub.verify_token=meatyhamhock
Verify_token, meatyhamhock ในกรณีของตัวอย่างนี้เป็นสตริงที่คุณสามารถเลือกได้ ไม่สำคัญว่ามันคืออะไรตราบใดที่คุณเก็บไว้ในตัวแปรสภาพแวดล้อม VERIFY_TOKEN
การตรวจสอบคำขอตรวจสอบ
แหล่งที่มา
เมื่อใดก็ตามที่ปลายทางของคุณได้รับคำขอยืนยันจะต้อง:
- ตรวจสอบว่าค่า Hub.Verify_Token ตรงกับสตริงที่คุณตั้งค่าในฟิลด์ Verify Token เมื่อคุณกำหนดค่าผลิตภัณฑ์ WebHooks ในแดชบอร์ดแอปของคุณ (คุณยังไม่ได้ตั้งค่าสตริงโทเค็นนี้)
- ตอบกลับด้วยค่าฮับ
ตรวจสอบความถูกต้องของน้ำหนักบรรทุก
แหล่งที่มา
WhatsApp ลงนามในการแจ้งเตือนเหตุการณ์ทั้งหมดด้วยลายเซ็น SHA256 และรวมถึงลายเซ็นในส่วนหัว X-Hub-256 ของคำขอ X-Hub-256 ซึ่งนำหน้าด้วย SHA256 = คุณไม่จำเป็นต้องตรวจสอบน้ำหนักบรรทุก แต่ควร
เพื่อตรวจสอบความถูกต้องของน้ำหนักบรรทุก:
- สร้างลายเซ็น Sha256 โดยใช้เพย์โหลดและแอปแอพของคุณเป็นความลับ
- เปรียบเทียบลายเซ็นของคุณกับลายเซ็นในส่วนหัว X-Hub-Signature-256 (ทุกอย่างหลังจาก SHA256 =) หากลายเซ็นตรงกับน้ำหนักบรรทุกเป็นของแท้
ขั้นตอนที่ 5: เรียนรู้เกี่ยวกับ API และสร้างแอปของคุณ
ตรวจสอบเอกสารนักพัฒนาเพื่อเรียนรู้วิธีสร้างแอปของคุณและเริ่มส่งข้อความ ดูเอกสาร
ขั้นตอนที่ 6: รวม AI เข้ากับแอปพลิเคชัน
ตอนนี้เรามีการเชื่อมต่อที่สิ้นสุดจนจบเราสามารถทำให้บอทฉลาดขึ้นเล็กน้อยจากนั้นก็ตะโกนใส่เราในกรณีบน สิ่งที่คุณต้องทำคือมาพร้อมกับฟังก์ชั่น generate_response() ของคุณเองใน whatsapp_utils.py
หากคุณต้องการตัวอย่างเครื่องตัดคุกกี้เพื่อรวม OpenAI Assistans API เข้ากับเครื่องมือดึงข้อมูลให้ทำตามขั้นตอนเหล่านี้
- ดูวิดีโอนี้: การสอนผู้ช่วย Openai
- สร้างผู้ช่วยของคุณเองด้วย openai และอัปเดต
OPENAI_API_KEY ของคุณและ OPENAI_ASSISTANT_ID ในตัวแปรสภาพแวดล้อม - ให้ข้อมูลและคำแนะนำแก่ผู้ช่วยของคุณ
- อัปเดต openai_service.py เป็นกรณีการใช้งานของคุณ
- นำเข้า
generate_reponse ใน whatsapp_utils.py - อัปเดต
process_whatsapp_message() ด้วยฟังก์ชัน generate_reponse() ใหม่
ขั้นตอนที่ 7: เพิ่มหมายเลขโทรศัพท์
เมื่อคุณพร้อมที่จะใช้แอพของคุณสำหรับกรณีการใช้งานการผลิตคุณต้องใช้หมายเลขโทรศัพท์ของคุณเองเพื่อส่งข้อความถึงผู้ใช้ของคุณ
หากต้องการเริ่มส่งข้อความไปยังหมายเลข WhatsApp ใด ๆ ให้เพิ่มหมายเลขโทรศัพท์ ในการจัดการข้อมูลบัญชีและหมายเลขโทรศัพท์ของคุณดูหน้าภาพรวม และเอกสาร WhatsApp
หากคุณต้องการใช้ตัวเลขที่ใช้อยู่แล้วในลูกค้า WhatsApp หรือแอพธุรกิจคุณจะต้องโยกย้ายหมายเลขนั้นไปยังแพลตฟอร์มธุรกิจอย่างเต็มที่ เมื่อหมายเลขถูกย้ายคุณจะสูญเสียการเข้าถึงลูกค้า WhatsApp หรือแอพธุรกิจ ดูโยกย้ายหมายเลข WhatsApp ที่มีอยู่ไปยังบัญชีธุรกิจสำหรับข้อมูล
เมื่อคุณเลือกหมายเลขโทรศัพท์แล้วคุณต้องเพิ่มลงในบัญชีธุรกิจ WhatsApp ของคุณ ดูเพิ่มหมายเลขโทรศัพท์
เมื่อต้องรับมือกับ WhatsApp Business API และต้องการทดสอบโดยไม่ส่งผลกระทบต่อหมายเลขส่วนตัวของคุณคุณมีตัวเลือกเล็กน้อย:
- ซื้อซิมการ์ดใหม่
- หมายเลขโทรศัพท์เสมือนจริง
- โทรศัพท์สองซิม
- ใช้อุปกรณ์อื่น
- บริการหมายเลขชั่วคราว
- อุปกรณ์เฉพาะเพื่อการพัฒนา
คำแนะนำ : หากเป็นไปเพื่อวัตถุประสงค์ที่ยืดเยื้อหรือเป็นมืออาชีพมากขึ้นให้ใช้บริการหมายเลขโทรศัพท์เสมือนจริงหรือซื้อซิมการ์ดใหม่สำหรับอุปกรณ์เฉพาะ สำหรับการทดสอบอย่างรวดเร็วจำนวนชั่วคราวอาจพอเพียง แต่ระมัดระวังเกี่ยวกับความปลอดภัยและความเป็นส่วนตัวเสมอ โปรดจำไว้ว่าเมื่อตัวเลขเชื่อมโยงกับ WhatsApp Business API แล้วจะไม่สามารถใช้กับ WhatsApp ปกติบนอุปกรณ์ได้เว้นแต่คุณจะปิดการใช้งานจาก API ธุรกิจและกลับมาอีกครั้งบนอุปกรณ์
Datalumina
เอกสารนี้มีให้กับคุณโดย Datalumina เราช่วยนักวิเคราะห์ข้อมูลวิศวกรและนักวิทยาศาสตร์เปิดตัวและขยายธุรกิจอิสระที่ประสบความสำเร็จ - $ 100K+ /ปีโครงการสนุกลูกค้าที่มีความสุข หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับสิ่งที่เราทำคุณสามารถเยี่ยมชมเว็บไซต์ของเราและสมัครรับจดหมายข่าวของเรา อย่าลังเลที่จะแบ่งปันเอกสารนี้กับเพื่อนและเพื่อนร่วมงานของคุณ
บทเรียน
สำหรับการสอนวิดีโอเยี่ยมชมช่อง YouTube: youtube.com/@daveebbelaar