كيف يتم إعلامك عند تعطل موقعك باستخدام Geekflare API؟

نشرت: 2021-08-22

يحاول المستخدمون الوصول إلى موقعك ، هل تعلم ماذا حدث؟ لا تظهر. هناك بعض الأخطاء التي لم تعرفها من قبل. يشعر المستخدمون بالإحباط ويغادرون موقعك. لذلك ، فقدت بعض المستخدمين المخلصين معها.

كيفية حل هذه المشكلة؟ كيف تتعرف على الموقع قبل أن يعثر عليه المستخدمون لديك؟

هناك طريقتان محتملتان:

إذا كنت لا تمانع في إنفاق بضعة دولارات ، فيمكنك البحث عن حل مراقبة مثل StatusCake أو غيرها من الحلول المذكورة هنا. ومع ذلك ، إذا كنت مطورًا أو لست مستعدًا للإنفاق شهريًا ، فيمكنك الاستفادة من Geekflare API - Is Site Up؟

هل الموقع يصل؟ تتحقق واجهة برمجة التطبيقات (API) مما إذا كان الموقع أعلى أو معطل من مواقع مختلفة.

دعني أريك كود Python الذي يعلمك على الفور عندما يتعطل موقعك عبر Gmail .

لنبدأ باستكشاف Is Site Up؟ API.

هل الموقع يصل؟ API

قبل التحقق من واجهة برمجة التطبيقات ، نحتاج إلى تثبيت حزمة تسمى طلبات للعمل مع واجهات برمجة التطبيقات في بايثون. لكن ليس من الضروري استخدام لغة Python الوحيدة. يمكنك استخدام لغتك المفضلة. ولكن ، تأكد من إعداد الأشياء المطلوبة لتقديم طلب API.

لذلك ، بالنسبة لأولئك الذين يستخدمون Python ، قم بتثبيت حزمة الطلبات باستخدام pip install requests الأمر pip install requests

أكمل الإعداد للغات أخرى (إذا اخترت غير Python) وتابع إلى الخطوات التالية.

الآن ، انتقل إلى صفحة Geekflare API.

صفحة Geekflare API
صفحة Geekflare API

يمكنك العثور على أنواع مختلفة من واجهات برمجة التطبيقات بما في ذلك هل Site Up؟ API التي نحن مهتمون بها لهذه المقالة. لاستخدام Geekflare APIs ، نحتاج إلى مفتاح API يمكننا الحصول عليه من خلال RapidAPI.

انقر فوق الزر GET API KEY للانتقال إلى RapidAPI.

الحصول على زر مفتاح API
الحصول على زر مفتاح API

سيتم فتح RapidAPI في علامة تبويب جديدة على النحو التالي.

رابيدابي
رابيدابي

نحتاج إلى إنشاء حساب للحصول على مفتاح API. قم بإنشاء حساب في RapidAPI إذا لم يكن لديك حساب. قم بتسجيل الدخول إلى حسابك بعد إنشاء حساب.

RapidAPI تسجيل الدخول
RapidAPI تسجيل الدخول

سوف تجد هل Site Up؟ API في الجزء العلوي من جميع واجهات برمجة التطبيقات Geekflare التي نبحث عنها. إذا لم يكن نشطًا ، فابحث عنه باستخدام البحث المتاح وانقر فوقه.

سوف تحصل على استخدام API على الجانب الأيمن. حدد Python مع الطلبات من قسم Code Snippets على الجانب الأيمن.

لغات البرمجة
لغات البرمجة

اختر لغتك المفضلة مع الحزمة المعنية إذا كنت لا تستخدم Python.

سوف تحصل على رمز استدعاء Is Site Up؟ API. دعنا نعدلها قليلاً مما يساعدنا على إضافة المزيد من الكود بسهولة لاحقًا. ألق نظرة على الكود المعدل في بايثون.

 import requests API_URL = "https://geekflare.p.rapidapi.com/up" def make_api_request(): headers = { 'content-type': "application/json", 'x-rapidapi-host': "geekflare.p.rapidapi.com", 'x-rapidapi-key': "YOUR_API_KEY" } payload = r'{"url": "https://www.geekflare.com"}' response = requests.request("POST", API_URL, data=payload, headers=headers) return response.json() if __name__ == '__main__': data = make_api_request() print(data)

استبدل API_KEY بمفتاح API الخاص بك من RapidAPI في الكود أعلاه. سيكون مختلفًا لكل مستخدم. ستجده في RapidAPI ضمن قسم معلمات الرؤوس على النحو التالي.

مفتاح API
مفتاح API

يمكنك العثور على نفس مفتاح API في نموذج التعليمات البرمجية كما هو موضح أدناه.

مفتاح API
مفتاح API

انسخ المفتاح وأضفه إلى الكود أعلاه

متعدد المواقع

يتحقق الكود أعلاه مما إذا كان الموقع يعمل أم لا من مكان واحد (نيويورك ، الولايات المتحدة الأمريكية). لكن يمكننا اختباره من مواقع مختلفة مع مواقع في نص الطلب.

المواقع الأخرى المتاحة هي إنجلترا (لندن) وسنغافورة. يمكننا تمرير بيانات المواقع مع عنوان URL الخاص بالموقع على النحو التالي.

 { "locations": [ "uk", "us", "sg" ], "url": "geekflare.com" }

يمكنك تمرير المواقع التي تفضلها من القائمة.

لقد أكملنا الكود لتقديم طلب API يقوم بجلب البيانات سواء كان الموقع يعمل أم لا. الآن ، حان الوقت لكتابة المزيد من التعليمات البرمجية التي ترسل بريدًا عندما يكون الموقع معطلاً. دعنا نذهب.

تلقي البريد الإلكتروني عندما يكون الموقع معطلاً

يمكنك العثور على البرنامج التعليمي المفصل حول كيفية إرسال رسائل البريد الإلكتروني من خلال Gmail في Python أو استخدام الكود التالي الذي يستخدم حزمة تسمى yagmail مصممة خصيصًا لإرسال رسائل بريد إلكتروني من Gmail .

قبل إرسال بريد عبر حساب Gmail الخاص بك ، يتعين علينا تشغيل خيارات السماح بالتطبيقات الأقل أمانًا . يمكنك تشغيله هنا.

دعونا نرى الكود.

 def send_mail(): gmail = yagmail.SMTP("gmail", "password") receiver = "[email protected]" subject = "Testing Subject" body = "This is a testing mail" gmail.send( to=receiver, subject=subject, contents=body, )

يمكنك العثور على البرنامج التعليمي الكامل لبرنامج yagmail هنا.

الآن ، لدينا رمز لطلبات API وإرسال البريد. خطوتنا التالية هي استدعاء send_mail كلما تلقينا حالة سيئة من طلب واجهة برمجة التطبيقات.

إذن ، كيف نعرف أن موقعنا معطل أم لا؟ عندما نطلب Is Site Up؟ API ، وسوف تستجيب مع بعض البيانات على النحو التالي.

 {'timestamp': 1629556759685, 'apiStatus': 'success', 'apiCode': 201, 'message': 'Site is up.', 'meta': {'url': 'https://www.geekflare.com', 'followRedirect': False, 'test': {'id': 'eu0frmah05mids55elkjgevkzd8ur3vk'}}, 'data': [{'country': 'United States', 'city': 'New York', 'description': 'Site is up.', 'statusCode': 301, 'reasonPhrase': 'Moved Permanently'}]}

سوف تجد مفتاح يسمى رسالة فيه. تخبرنا قيمة الرسالة الرئيسية ما إذا كان الموقع متجهًا إلى الأعلى أم لا. لذلك يمكن أن يكون نوعان من الرسائل على النحو التالي.

  • انتهى الموقع.
  • الموقع معطل.

أعتقد أنك حصلت عليه الآن. لذلك ، سوف نرسل البريد عندما نتلقى الرسالة " الموقع معطل". سيبدو الرمز النهائي على النحو التالي.

 import requests import yagmail API_URL = "https://geekflare.p.rapidapi.com/up" def make_api_request(): headers = { 'content-type': "application/json", 'x-rapidapi-host': "geekflare.p.rapidapi.com", 'x-rapidapi-key': "API_KEY" } payload = r'{"url": "https://www.abcd.com"}' response = requests.request("POST", API_URL, data=payload, headers=headers) return response.json() def send_mail(content): gmail = yagmail.SMTP("gmail", "password") receiver = "[email protected]" subject = "Your Site is Down" gmail.send( to=receiver, subject=subject, contents=content, ) if __name__ == '__main__': data = make_api_request() message = data['message'] ## seding the mail if message == 'Site is down.': ## extracting the errors from different locations locations_data = data['data'] mail_content = "Your site is down due to unexpected error. See the useful data to resolve errors below.\n\n" for location in locations_data: mail_content += f"{location['city']}, {location['country']} - {location['error']}\n" mail_content += "\nCheck the error and resolve them as soon as possible." send_mail(mail_content)

يمكنك تحديث محتوى البريد كما تفضل. لقد أكملنا إرسال البريد كلما تعطل موقعنا. انظر إلى نموذج البريد الذي تم استلامه من خلال الكود أعلاه.

موقع أسفل البريد
موقع أسفل البريد

ولكن لا تزال هناك مشكلة.

يتعين علينا تنفيذ الكود الخاص بنا للتحقق مما إذا كان موقعنا يعمل أم لا. كم مرة نقوم بتشغيلها؟ نعم ، هذا يعتمد على ما تفضله. لنفترض أنه يتعين علينا التحقق من ذلك كل ساعة.

يمكننا فتح Terminal أو سطر الأوامر وتنفيذ الكود الخاص بنا كل ساعة. لكنها عملية متكررة ومملة. وأحيانًا يمكننا أن ننسى التحقق من ذلك. لذلك ، نحتاج إلى تنفيذ الكود تلقائيًا كل ساعة.

هنا يمكننا الاستفادة من كرون لتنفيذ الكود الخاص بنا تلقائيًا كل ساعة. دعونا نرى كيفية إعداده.

إعداد Cron

دعنا نرى خطوات إعداد cron على نظام تشغيل قائم على UNIX.

  • افتح المحطة.
  • قم بتشغيل الأمر crontab -e الذي يفتح ملف crontab في المحطة.
  • اضغط على المفتاح i للدخول في وضع INSERT.
  • الآن ، أضف نمط cron ودليل Python ودليل ملف الكود الخاص بنا. ترى المثال أدناه.

0 * * * * /usr/bin/python3 /home/sample.py

كرون
كرون

لقد قمنا بتعيين النمط لتنفيذ الكود كل ساعة. ولكن ، قد تحتاج إلى ضبطه على كل دقيقة بناءً على المتطلبات. لذلك ، يمكنك استخدام Crontab Guru أو أدوات cron الأخرى لإنشاء نمط cron للجدول.

هذا هو. لقد أكملنا الإعداد ليتم إعلامنا عند تعطل الموقع.

استنتاج

استخدم cron لجدولة البرنامج النصي ليتم تشغيله بشكل دوري على خادمك السحابي الذي يعمل على مدار الساعة طوال أيام الأسبوع للحصول على إشعار عبر البريد الإلكتروني عند تعطل الموقع. توفر الأتمتة الكثير من الوقت وتعمل لصالحنا. لذا ، استخدمها كما فعلنا في هذه المقالة.

مراقبة سعيدة