בעיה ב Curl עם הפקודה QueueManagement
-
אני שולח
QueueManagement
כך$handle = curl_init(); $YemotUrl = "https://www.call2all.co.il/ym/api/QueueManagement"; $postData = array( 'token' => $token, 'callIds' => $CallsInQueue, 'action' => 'kick', 'moreData' => 'GOTO:/1/1' ); curl_setopt_array($handle, array( CURLOPT_URL => $YemotUrl, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $JSONpostData, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER, array("Content-Type: application/json; charset=utf-8"), ) ); // curl_setopt($handle,CURLOPT_HTTPHEADER, array("Content-Type: application/json; charset=utf-8")); $data = curl_exec($handle); curl_close($handle);התשובה שאני מקבל היא
{"responseStatus":"Exception", "message":"callIds is not array", "file":"QueueManagement.ym" ,"Line":"274:44" ,"yAfastVersion":"6.6.30"}כשאני מדפיס ב var_dump את $postData
זה נראה ככהarray(5) { ["token"]=> string(16) "XXXX:YYYY" ["callIds"]=> array(2) { [0]=> string(32) "2b3e11699b5606b5ca1cfc0191dc5f7a" [1]=> string(32) "eb73b1f4268ec2fc3f7f91b03ea5fec2" } ["action"]=> string(4) "kick" ["moreData"]=> string(16) "GOTO:/1/1" ["queuePath"]=> string(4) "AA/8" }אשמח אם מישהו יוכל לכוון אותי היכן הטעות שלי
תודה רבה -
יש משהו שאני לא מבין, או שלא העתקת נכון את הקוד
אתה מאכלס את הנתונים במשתנה בשם$postDataובשליחה ל curl אתה שולח משתנה בשם$JSONpostData -
@amp-Software-0
אני ניסיתי כמה אפשרויות באחרת מהם יצרתי משתנה שממיר את postData לjson
תכלס בסוף מה שעשיתי בסוף:
הגדרתי בקשה באמצעות postmen ושם יש אפשרות של Code snippet
בחרתי ב php - Curl ומה שיצא לי זה הקוד הבא(כמובן ערכתי אותו טיפה אבל זה העיקרון)$postData = array( 'token' => $token, 'callIds' => $CallsInQueue, 'action' => 'kick', 'moreData' => 'GOTO:/1/1', 'queuePath' => "$Driver_call_location/2/2", ); $postData = json_encode($postData); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://www.call2all.co.il/ym/api/QueueManagement', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS =>$postData, CURLOPT_HTTPHEADER => array( 'Content-Type: application/json' ), )); $response = curl_exec($curl); curl_close($curl); $response; -
@חוויה-טלפונית אתה צריך להקפיץ על שתי דברים.
השירות הזה דורש לקבל json ולא כמו כל שירות.
לכן,
אתה צריך להקפיד על:Content-Type: application/jsonולשלוח את הbody ב json ולא כפרמטרים.
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות