Cargo-Planner Docs

การสื่อสารสองทาง

รูปแบบการใช้งานที่พบบ่อยคือคุณส่งข้อมูลอินพุตบางอย่างไปยัง API ของเรา เราจะทำการประมวลผลตัวเลขและคุณจะได้รับผลลัพธ์ซึ่งคุณสามารถฝังลงในแอปพลิเคชันของคุณได้

บางครั้งคุณอาจต้องการทำการจัดเรียงใหม่ด้วยตนเองซึ่งคุณอาจต้องการลบสินค้าบางอย่างออกจากตู้คอนเทนเนอร์ และเพิ่มบางอย่าง เมื่อคุณทำการแก้ไขประเภทนั้นแล้ว มันจะดีมากหากแอปพลิเคชันของคุณได้รับการเปลี่ยนแปลงเหล่านั้นด้วย - คุณต้องการให้ Cargo-Planner โต้ตอบกับระบบของคุณด้วย คุณจะต้องเพิ่มเว็บฮุกบางตัว

เว็บฮุก

เว็บฮุกคือจุดสิ้นสุดที่คุณตั้งค่าเพื่อสมัครรับเหตุการณ์บางอย่าง

สมมติว่าทันทีที่แผนการโหลดถูกบันทึก / อัปเดตโดยคุณ คุณต้องการให้ผลลัพธ์นี้ถูกส่งไปยังเซิร์ฟเวอร์ของคุณ นี่คือวิธีที่คุณทำได้:

Creating a webhook

  1. ไปที่พอร์ทัลนักพัฒนาในแอปพลิเคชันเว็บ
  2. ขยายส่วนเว็บฮุก
  3. กดสร้างเว็บฮุก
  4. ป้อน URL ที่คุณต้องการให้ข้อมูลถูกโพสต์ไป รวมถึงเลือกเหตุการณ์ที่คุณต้องการสมัครรับ
  5. กดบันทึก

การฟังเหตุการณ์

บนเซิร์ฟเวอร์ของคุณ เพิ่มจุดสิ้นสุดเดียวกับที่คุณระบุในส่วน URL ข้างต้นเมื่อสร้างจุดสิ้นสุด


from flask import Flask, request, abort
import hmac
import hashlib

app = Flask(__name__)

@app.route('/events-from-cargoplanner/', methods=['POST'])
def receive_webhook():
    payload = request.get_data(as_text=True)
    received_signature = request.headers.get('X-Hub-Signature')

    secret = "_nf7TmrgTJt6Gk43d9aSAK_yOEE58KXlTgvotei3Xe4"  # Add the secret generated for your endpoint

    expected_signature = hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest()

    if hmac.compare_digest(f'sha256={expected_signature}', received_signature):
        # Process the payload
        return "Payload processed", 200s
    else:
        abort(403, 'Signature verification failed')

if __name__ == '__main__':
    app.run()

เมื่อสร้างเว็บฮุกคุณจะได้รับความลับซึ่งสามารถใช้บนเซิร์ฟเวอร์ของคุณเพื่อให้แน่ใจว่าข้อมูลมาจาก Cargo-Planner จริงๆ