בעיה ב 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 ולא כפרמטרים.