• בלוג
  • סקריפט קצרצר שבודק אם אתר מותאם למובייל

סקריפט קצרצר שבודק אם אתר מותאם למובייל

פוסט זה כולל טיפ קצר על כלי עבודה בסביבת Linux. בשביל ללמוד יותר על עבודה בסביבת Linux ו Unix אני ממליץ לכם לבדוק את קורס Linux שיש לנו כאן באתר. הקורס כולל מעל 50 שיעורי וידאו והמון תרגול מעשי ומתאים גם למתחילים.
 

אחד הכלים הכי עמוסים בפיצ'רים מהשנים האחרונות הוא jq. הוא התחיל את דרכו ב 2012 ומאז עוזר ללינוקסאים לפענח מידע JSON כדי לשלב אותו בסקריפטים. הסקריפט בדוגמא הפעם יעזור לכם להבין אם גוגל חושבים שהאתר שלכם מותאם למובייל, וגם ישלח מייל אם יגלה שלא מותאם. מומלץ להפעיל פעם ביום מ cron job.

1. לפני הכל: מפתח גישה לגוגל

לגוגל יש API בעזרתו אפשר לשאול את הרובוט שלהם אם האתר שלכם מותאם למובייל. אתם שולחים את כתובת האתר כ JSON ומקבלים חזרה ב JSON תשובת כן או לא פשוטה. האתגר היחיד הוא להשיג מפתח גישה כי גוגל מגבילים את מספר הפניות. המדריך של גוגל נמצא בקישור הזה:

https://developers.google.com/webmaster-tools/search-console-api/v1/configure

הדבר השני שתצטרכו הוא הכלי jq. ההתקנה על אובונטו או דביאן עם:

sudo apt-get install jq

2. ונעבור לקוד

קודם קוד ואחריו הסבר קצר:

#!/usr/bin/env bash
SITE="YOUR WEBSITE ADDRESS GOES HERE"
API_KEY="YOUR API KEY GOES HERE"
REPORT_EMAIL="YOUR EMAIL GOES HERE"

JSON=$(curl -H 'Content-Type: application/json' --data '{url: "'"$SITE"'"}' 'https://searchconsole.googleapis.com/v1/urlTestingTools/mobileFriendlyTest:run?key='"$API_KEY" 2>/dev/null)

RESULT=$(echo "$JSON" | jq -r '.mobileFriendliness')

if [[ $RESULT != "MOBILE_FRIENDLY" ]]
then
  # Error - not a mobile frienly site
  cat <<END | mail -s "Mobile Friendly Failure" ${REPORT_EMAIL}
Google reports "${SITE}" as not mobile friendly. Issues found:
$(echo "${JSON}" | jq -r '.mobileFriendlyIssues|map(.rule)|join("\n")')
END
fi

שלושת השורות הראשונות מגדירות את המשתנים SITE, API_KEY ו REPORT_EMAIL בהם נשתמש בהמשך הסקריפט. עליכם לרשום בהם ערכים שרלוונטים עבורכם כדי שהסקריפט יעבוד.

השורה הבאה עושה את רוב העבודה. גוגל פתחו ממש לאחרונה את הגישה שמאפשרת לבדוק אם אתר מותאם למובייל, והקריאה באמצעות curl שולחת בקשה למידע על אתר מסוים.

המידע חוזר בפורמט json ולכן בשורות הבאות שולפים את השדות הרלוונטים באמצעות jq. אז גם אפשר לבדוק האם האתר מותאם או לא ולשלוח מייל עם השגיאות במידה ואינו מותאם.

סך הכל אלה הדברים שאני אוהב את bash עבורם. כמעט לא צריך להתקין כלום ואפשר לצרף את הסקריפט הזה ל cron ולשכוח מהעניין, וכשבטעות נשבור משהו הסקריפט כבר יודיע לנו באימייל שצריך לתקן.