קוד PHP שהכנתי לקבלת והדפסת הטוקן העדכני של המערכת שלכם.
-
הכנתי קוד PHP שדרכו אפשר לקבל את הטוקן העדכני למערכת שלכם.
בקריאה לקוד הוא בודק האם נשמר בשרת שלכם טוקן ב-30 דקות האחרונות.
אם נשמר הוא מדפיס את הטוקן שנשמר.
אם לא הוא מקבל טוקן חדש ומדפיס אותו.
לאחר שהוא מקבל טוקן הוא שומר אותו בשרת שלכם בקובץ בשםtoken
.
וכן הוא שומר בשרת שלכם בקובץ בשםtoken_date
את התאריך והשעה של יצירת הטוקן, לצורך בדיקה בבקשות הבאות האם עבר 30 דקות מקבלת הטוקן הקודם.
כמובן שצריך לשנות את מספר המערכת והסיסמה בשורות 3 ו- 5.
דוגמה לשימוש בקוד לגוגל סקריפט/שיטס כאן.
זה הקוד:<?php //מספר המערכת $username = "0773137777"; //סיסמת הניהול $password = "123456"; //כתובת השרת של ימות $url = "https://www.call2all.co.il/ym/api/Login?username=" . $username . "&password=" . $password; //הקובץ לשמירת הטוקן $tokenFile = "token"; //הקובץ לשמירת התאריך והשעה של העדכון האחרון של הטוקן $dateFile = "token_date"; // פונקציה לקבלת טוקן חדש function getNewToken($url, $tokenFile, $dateFile) { // שליחת בקשת GET $curl = curl_init($url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($curl); curl_close($curl); // בדיקת תשובה תקינה if ($response === false) { die("שגיאה בשליחת בקשת GET"); } // פענוח תשובה בפורמט JSON $data = json_decode($response, true); // בדיקת פיענוח תקין של JSON if (is_null($data)) { die("שגיאה בפיענוח תשובה בפורמט JSON"); } // שמירת הטוקן ותאריך העדכון file_put_contents($tokenFile, $data['token']); $now = new DateTime('now', new DateTimeZone('Israel')); $dateString = $now->format('Y-m-d H:i:s'); file_put_contents($dateFile, $dateString); // הדפסת הטוקן החדש echo $data['token']; } // בדיקת האם יש טוקן תקף if (file_exists($tokenFile) && file_exists($dateFile)) { $lastTokenDate = file_get_contents($dateFile); $lastTokenDateTime = new DateTime($lastTokenDate, new DateTimeZone('Israel')); $now = new DateTime('now', new DateTimeZone('Israel')); // חישוב הפרש הזמן בדקות $interval = $now->getTimestamp() - $lastTokenDateTime->getTimestamp(); $minutesPassed = $interval / 60; // בדיקה האם הטוקן פג תוקף if ($minutesPassed >= 30 || !preg_match('/^(?=.*[a-z])(?=.*[A-Z])[a-zA-Z\d]{16}$/', file_get_contents($tokenFile))) { getNewToken($url, $tokenFile, $dateFile); } else { echo file_get_contents($tokenFile); } } else { // קבלת טוקן חדש אם אין קבצים קיימים getNewToken($url, $tokenFile, $dateFile); } ?>
-
-