• הרשמה
    • התחברות
    • חיפוש
    • דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • קבלת התראות מהדפדפן
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private

    בעיה ב Curl עם הפקודה QueueManagement

    פורום PHP
    3
    4
    133
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • ח
      חוויה טלפונית נערך לאחרונה על ידי שמחה - זו הסיסמא

      אני שולח 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" 
      }
      

      אשמח אם מישהו יוכל לכוון אותי היכן הטעות שלי
      תודה רבה

      A שמואל 2 תגובות תגובה אחרונה תגובה ציטוט 0
      • A
        amp Software 0 @חוויה טלפונית נערך לאחרונה על ידי amp Software 0

        יש משהו שאני לא מבין, או שלא העתקת נכון את הקוד
        אתה מאכלס את הנתונים במשתנה בשם $postData ובשליחה ל curl אתה שולח משתנה בשם $JSONpostData

        ח תגובה 1 תגובה אחרונה תגובה ציטוט 2
        • ח
          חוויה טלפונית @amp Software 0 נערך לאחרונה על ידי

          @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;
          
          תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • שמואל
            שמואל @חוויה טלפונית נערך לאחרונה על ידי

            @חוויה-טלפונית אתה צריך להקפיץ על שתי דברים.

            השירות הזה דורש לקבל json ולא כמו כל שירות.

            לכן,
            אתה צריך להקפיד על: Content-Type: application/json ולשלוח את הbody ב json ולא כפרמטרים.

            לפניות בנוגע לפורום: shmuel@yemot.co.il

            תגובה 1 תגובה אחרונה תגובה ציטוט 2
            • פוסט ראשון
              פוסט אחרון