Cargo-Planner Docs
اتصال ثنائي الاتجاه
نمط الاستخدام المتكرر هو أنك ترسل بعض بيانات الإدخال إلى واجهة برمجة التطبيقات الخاصة بنا، نقوم بمعالجة الأرقام ثم يتم تقديم النتيجة لك، والتي يمكنك تضمينها في تطبيقك.
أحيانًا ترغب في إجراء بعض التعديلات يدويًا حيث قد ترغب في حذف بعض البضائع من حاوية، وإضافة أخرى. عندما تقوم بإجراء تلك التعديلات، سيكون من الرائع إذا حصل تطبيقك على تلك التغييرات أيضًا - تريد أن يتفاعل Cargo-Planner مع نظامك أيضًا. ستحتاج إذًا إلى إضافة بعض webhooks.
Webhooks
الـ Webhooks هي في الأساس نقاط نهاية تقوم بتعيينها للاشتراك في أحداث معينة.
لنفترض أنه بمجرد حفظ / تحديث خطة التحميل من قبلك، تريد إرسال هذه النتيجة إلى الخادم الخاص بك. هكذا تحقق ذلك:

- اذهب إلى بوابة المطورين في التطبيق الويب
- قم بتوسيع قسم webhooks
- اضغط على إنشاء webhook
- أدخل عنوان URL الذي تريد نشر البيانات إليه بالإضافة إلى تحديد الحدث الذي تريد الاشتراك فيه
- اضغط على حفظ
الاستماع إلى الأحداث
على الخادم الخاص بك، أضف نقطة نهاية، مثل تلك التي حددتها في قسم 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()
عند إنشاء webhook، ستحصل على سر يمكن استخدامه على الخادم الخاص بك للتأكد من أن البيانات تأتي بالفعل من Cargo-Planner.