أتمتة رموز QR بلغة Python: مكتبة أم واجهة REST API؟
ما الذي تقدمه مكتبة Python
من يريد إنشاء رموز QR بلغة Python يجد عدة مكتبات حرة. تحوّل النص إلى صورة، وغالبًا إلى SVG أيضًا، محليًا ودون خدمة. وهذا مناسب تمامًا للملصقات ذات الأرقام التسلسلية والمستندات الداخلية وبيانات الدخول إلى شبكات Wi-Fi.
أين تصل الصور الثابتة إلى حدودها
رمز QR المُنشأ بهذه الطريقة ثابت، فالمحتوى مدمج في النمط. إذا تغيرت الوجهة بسبب إعادة إطلاق، أو لوحظ خطأ مطبعي بعد الطباعة فقط، أو أردت معرفة عدد مرات المسح، فلن يفيدك. لهذا توجد رموز QR الديناميكية: يخزّن Same-QR الوجهة خلف عنوان قصير ثابت، ويحسب المسحات، ويتحقق ليلًا من أن كل وجهة يمكن الوصول إليها.
رموز QR الديناميكية عبر واجهة REST API
تقع الواجهة على العنوان https://sameqr.com/api/v1. أنشئ في لوحة التحكم تحت الحساب، «الوصول لـ CLI والسكربتات والوكلاء»، مفتاحًا، «قراءة + كتابة» للإنشاء، واضبطه كمتغير البيئة SAMEQR_API_KEY. يستخدم هذا المثال المكتبة القياسية فقط:
import json, os, urllib.request
API = "https://sameqr.com/api/v1"
KEY = os.environ["SAMEQR_API_KEY"]
def rufe(methode, weg, daten=None):
req = urllib.request.Request(
API + weg, method=methode,
data=json.dumps(daten).encode() if daten else None,
headers={"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"})
with urllib.request.urlopen(req) as r:
return json.load(r)
code = rufe("POST", "/qr", {"name": "Anleitung Modell A", "targetUrl": "https://example.com/anleitung-a"})
print(code["id"])إذا ردت الواجهة بخطأ، تُطلق urlopen استثناءً. يحتوي المحتوى دائمًا على كائن error فيه status وcode وmessage. عالجه بدل ترك السكربت يتابع عمله دون تحقق.
سير عمل من الواقع
مُصنِّع يطبع على كل عبوة رمز QR يؤدي إلى دليل الاستخدام:
- يقرأ السكربت قائمة المنتجات من ملف CSV.
- لكل منتج جديد ينشئ رمز QR ويحفظ معرّفه بجانب رقم الصنف.
- عند صدور نسخة جديدة من الدليل، يغيّر بطلب PATCH على /qr/<id> الوجهة فقط. لذلك يحتاج إلى مفتاح «كامل» وترويسة X-Confirm مع الحالة المقروءة.
- سكربت ثانٍ بمفتاح قراءة يجلب أعداد المسح مرة في الشهر.
خطط للحدود: 10 تغييرات للوجهة في الساعة و30 في اليوم على الأكثر عبر الواجهة، و120 طلبًا في الدقيقة لكل مفتاح، وفي الساعة 60 في الباقة المجانية، و300 في Start، و1.000 في Pro، و5.000 في Agentur. عند 429 انتظر عدد الثواني المذكور في الترويسة Retry-After.
المفتاح بأمان في السكربت
- لا تكتب المفتاح أبدًا في ملف .py، بل اقرأه من البيئة.
- للسكربتات التي تقرأ فقط، استخدم مفتاحًا بصلاحية «قراءة فقط».
- لكل سكربت مفتاح خاص باسم معبّر ومدة مناسبة.
الخلاصة: لماذا Same-QR
لرموز QR الثابتة تكفي مكتبة. وما إن يبدأ الطبع حتى يصبح Same-QR الأساس الأفضل: واجهة REST API رشيقة في كل باقة، وأخطاء مفهومة، وحماية من الكتابة المتزامنة فوق بعضها، ووجهات تستطيع تغييرها بعد الطباعة.
ابدأ الآن: سجّل مجانًا على sameqr.com، فـ 20 رمز QR ديناميكيًا مجانية بشكل دائم. واجهة API وCLI وخادم MCP متاحة في كل باقة، والتوثيق على sameqr.com/entwickler.
الأسئلة الشائعة
لا. تعمل واجهة REST API مع المكتبة القياسية أو مع أي مكتبة لطلبات الويب.
نعم. للمحتوى الثابت يكفي رمز QR ثابت، أما لكل ما يُطبع وقد يتغير فاستخدم رمزًا ديناميكيًا.
من لوحة التحكم بصيغة PNG أو SVG أو PDF، أو عبر API بالمفتاح نفسه. يصف التوثيق على sameqr.com/entwickler الطرق.
مقالات جديدة مباشرة إلى بريدك
نصائح عن رموز QR الديناميكية وميزات جديدة، بدون رسائل مزعجة. يمكنك إلغاء الاشتراك في أي وقت.
باشتراكك توافق على استلام النشرة البريدية. يمكنك سحب موافقتك في أي وقت عبر رابط إلغاء الاشتراك الموجود في كل رسالة.