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

    מדריך התחלת עבודה עם API של ימות משיח (חלק ב').

    פורום מפתחים API
    8
    24
    2550
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • ל
      לולב ואתרוג @ASS נערך לאחרונה על ידי

      @ass כתבתי ככה
      01/
      זו הייתה הטעות שלי
      תודה👍

      תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • מ
        מני מני @ASS נערך לאחרונה על ידי

        פוסט זה נמחק!
        תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • Y
          yonatan נערך לאחרונה על ידי yonatan

          @ASS
          התחברתי עם המחלקה וכתבתי פקודה, בסוף סגרתי עם ?>

          והוא מחזיר

          ( ! ) Parse error: syntax error, unexpected '?>', expecting ')' in C:\wamp64\www\my_php\1.php on line 260
          

          כאילו יש לו בעיה עם הסיומת, הורדתי את הסיומת ומחזיר

          ( ! ) Parse error: syntax error, unexpected end of file, expecting ')' in C:\wamp64\www\my_php\1.php on line 260
          

          הקוד המלא הוא

          <?php
          
          define("URL", "https://private.call2all.co.il/ym/api/");
          $server = "private";
          
          class BodyPost
          {
          // part "multipart/form-data"
              public static function PartPost($name, $val)
               {
                   $body = 'Content-Disposition: form-data; name="' . $name . '"';
          // check instance of oFile
                   if($val instanceof oFile)
                    {
                        $file = $val->Name();
                        $mime = $val->Mime();
                        $cont = $val->Content();
           
                        $body .= '; filename="' . $file . '"' . "\r\n";
                        $body .= 'Content-Type: ' . $mime ."\r\n\r\n";
                        $body .= $cont."\r\n";
                    } else $body .= "\r\n\r\n".$val."\r\n";
                   return $body;
               }
           
              public static function Get(array $post, $delimiter = '-------------0123456789')
               {
                   if(is_array($post) && !empty($post))
                    {
                        $bool = true;
                        //foreach($post as $val) if($val instanceof oFile) {$bool = true; break; };
                        if($bool)
                         {
                             $ret = '';
                             foreach($post as $name=>$val)
                                 $ret .= '--' . $delimiter. "\r\n". self::PartPost($name, $val);
                             $ret .= "--" . $delimiter . "--\r\n";
                         } else $ret = http_build_query($post);
                    } else throw new \Exception('Error input param!');
                   return $ret;
               }
          }
           
          class oFile
          {
               private $name;
               private $mime;
               private $content;
           
               public function __construct($name, $mime=null, $content=null)
                {
                    if(is_null($content))
                     {
                         $info = pathinfo($name);
          // check is exist and readable file
                         if(!empty($info['basename']) && is_readable($name))
                          {
                              $this->name = $info['basename'];
          // get MIME
                              $this->mime = mime_content_type($name);
          // load file
                              $content = file_get_contents($name);
                              if($content!==false)
                              {
                                  $this->content = $content;
                              }
                              else
                              {
                                  throw new Exception('Don`t get content - "'.$name.'"');
                              }
                          }
                          else
                          {
                              throw new Exception('Error param');
                          }
                     }
                     else
                     {
                             $this->name = $name;
                             if(is_null($mime)) $mime = mime_content_type($name);
                             $this->mime = $mime;
                             $this->content = $content;
                      };
                }
           
              public function Name() { return $this->name; }
           
              public function Mime() { return $this->mime; }
           
              public function Content() { return $this->content; }
           
          }
           
          class connecting_to_yemot_api
          {
              public $token;
           
              const URL = URL;
           
              public function __construct($user_name, $password)
              {
                  $body = array('username' => $user_name, 'password' => $password);
           
                  $body = http_build_query($body);
           
                  $opts = array('http' => array(
           
                      'method'  => 'POST',
           
                      'header'  => "Content-Type: application/x-www-form-urlencoded",
           
                      'content' => $body,
           
                      'follow_location' => false) );
           
                   $context  = stream_context_create($opts);
           
                   $url = self::URL.'Login';
           
                      $result = file_get_contents($url, FALSE, $context);
           
                      $result = json_decode($result);
           
                      if($result -> responseStatus == 'OK')
                      {
                          $this -> token = $result -> token;
           
                          return TRUE;
                      }
                      else
                      {
                          throw new Exception('שם המשתמש או הסיסמא של המערכת שגויים');
                      }
              }
           
              public function __destruct()
              {
                  $this -> connecting('Logout');
              }
           
              public function connecting($action, $body = array())
              {
                  $delimiter = '----'.uniqid();
           
                  $body['token'] = $this -> token;
           
                  $body = BodyPost::Get($body, $delimiter);
           
                  $opts = array('http' =>
                          array(
                              'method'  => 'POST',
                              'header'  => 'Content-Type: multipart/form-data; boundary='.$delimiter,
                              'content' => $body,
                              'follow_location' => false
                              )
                            );
                  $context  = stream_context_create($opts);
           
                  $url = self::URL.$action;
           
                  $result = file_get_contents($url, FALSE, $context);
           
                  $headers = $this -> parseHeaders($http_response_header);
           
                  if($headers['Content-Type'][0] == 'application/json')
                  {
                      return json_decode($result);
                  }
                  else
                  {
                      return $result;
                  }
              }
           
              private function parseHeaders($headers)
              {
                  // פונקציה שמקבלת מערך של שורות הכותרות
                  // הפונקציה מפרקת את קבצי הקוקי לתת-מערך נפרד
           
           
                  // מערך הכותרות
                  $head = array();
           
                  foreach( $headers as $k=>$v )
                  {
                      $t = explode( ':', $v, 2 );
           
                      if( isset( $t[1] ) )
                      {
                          if($t[0] == 'Set-Cookie')
                          {
                              $CookiesArr = array();
           
                              $cookies = explode( ';', $t[1]);
           
                              foreach($cookies as $cookie)
                              {
                                  $c = explode( '=', $cookie);
           
                                  if( isset( $c[1] ) )
                                  {
                                      $CookiesArr[ trim($c[0]) ] = trim( $c[1] );
                                  }
                                  else
                                  {
                                      $CookiesArr[] = trim( $c[0] );
                                  }
                              }
           
                              $head[ trim($t[0]) ] = $CookiesArr;
                          }
                          elseif($t[0] == 'Content-Type')
                          {
                              $arr = array();
           
                              $children = explode( ';', $t[1]);
           
                              foreach($children as $child)
                              {
                                  $c = explode( '=', $child);
           
                                  if( isset( $c[1] ) )
                                  {
                                      $arr[ trim($c[0]) ] = trim( $c[1] );
                                  }
                                  else
                                  {
                                      $arr[] = trim( $c[0] );
                                  }
                              }
           
                              $head[ trim($t[0]) ] = $arr;
                          }
                          else
                          {
                              $head[ trim($t[0]) ] = trim( $t[1] );
                          }
                      }
                      else
                      {
                          $head[] = $v;
                          if( preg_match( "#HTTP/[0-9\.]+\s+([0-9]+)#",$v, $out ) )
                          {
                              $head['reponse_code'] = intval($out[1]);
                          }
                      }
                  }
                  return $head;
              }
          }
          
          
          $con = new connecting_to_yemot_api('07*****','****');
          $token = "07******:*****";
          
          
          
          $File_list = $con -> connecting('GetSession',
          
          ?>
          
          A מ 2 תגובות תגובה אחרונה תגובה ציטוט 0
          • A
            ASS @yonatan נערך לאחרונה על ידי

            @yonatan
            היה חסר לך בשורה אחת לפני הסוף (.
            בדרך כלל שגיאות מסוג של מצפה לסיום הקובץ וכו' זה בעיה בשורות שלפני כן ולא בשורה של השגיאה.

            <?php
            define("URL", "https://private.call2all.co.il/ym/api/");
            $server = "private";
             
            class BodyPost
            {
            // part "multipart/form-data"
                public static function PartPost($name, $val)
                 {
                     $body = 'Content-Disposition: form-data; name="' . $name . '"';
            // check instance of oFile
                     if($val instanceof oFile)
                      {
                          $file = $val->Name();
                          $mime = $val->Mime();
                          $cont = $val->Content();
             
                          $body .= '; filename="' . $file . '"' . "\r\n";
                          $body .= 'Content-Type: ' . $mime ."\r\n\r\n";
                          $body .= $cont."\r\n";
                      } else $body .= "\r\n\r\n".$val."\r\n";
                     return $body;
                 }
             
                public static function Get(array $post, $delimiter = '-------------0123456789')
                 {
                     if(is_array($post) && !empty($post))
                      {
                          $bool = true;
                          //foreach($post as $val) if($val instanceof oFile) {$bool = true; break; };
                          if($bool)
                           {
                               $ret = '';
                               foreach($post as $name=>$val)
                                   $ret .= '--' . $delimiter. "\r\n". self::PartPost($name, $val);
                               $ret .= "--" . $delimiter . "--\r\n";
                           } else $ret = http_build_query($post);
                      } else throw new \Exception('Error input param!');
                     return $ret;
                 }
            }
             
            class oFile
            {
                 private $name;
                 private $mime;
                 private $content;
             
                 public function __construct($name, $mime=null, $content=null)
                  {
                      if(is_null($content))
                       {
                           $info = pathinfo($name);
            // check is exist and readable file
                           if(!empty($info['basename']) && is_readable($name))
                            {
                                $this->name = $info['basename'];
            // get MIME
                                $this->mime = mime_content_type($name);
            // load file
                                $content = file_get_contents($name);
                                if($content!==false)
                                {
                                    $this->content = $content;
                                }
                                else
                                {
                                    throw new Exception('Don`t get content - "'.$name.'"');
                                }
                            }
                            else
                            {
                                throw new Exception('Error param');
                            }
                       }
                       else
                       {
                               $this->name = $name;
                               if(is_null($mime)) $mime = mime_content_type($name);
                               $this->mime = $mime;
                               $this->content = $content;
                        };
                  }
             
                public function Name() { return $this->name; }
             
                public function Mime() { return $this->mime; }
             
                public function Content() { return $this->content; }
             
            }
             
            class connecting_to_yemot_api
            {
                public $token;
             
                const URL = URL;
             
                public function __construct($user_name, $password)
                {
                    $body = array('username' => $user_name, 'password' => $password);
             
                    $body = http_build_query($body);
             
                    $opts = array('http' => array(
             
                        'method'  => 'POST',
             
                        'header'  => "Content-Type: application/x-www-form-urlencoded",
             
                        'content' => $body,
             
                        'follow_location' => false) );
             
                     $context  = stream_context_create($opts);
             
                     $url = self::URL.'Login';
             
                        $result = file_get_contents($url, FALSE, $context);
             
                        $result = json_decode($result);
             
                        if($result -> responseStatus == 'OK')
                        {
                            $this -> token = $result -> token;
             
                            return TRUE;
                        }
                        else
                        {
                            throw new Exception('שם המשתמש או הסיסמא של המערכת שגויים');
                        }
                }
             
                public function __destruct()
                {
                    $this -> connecting('Logout');
                }
             
                public function connecting($action, $body = array())
                {
                    $delimiter = '----'.uniqid();
             
                    $body['token'] = $this -> token;
             
                    $body = BodyPost::Get($body, $delimiter);
             
                    $opts = array('http' =>
                            array(
                                'method'  => 'POST',
                                'header'  => 'Content-Type: multipart/form-data; boundary='.$delimiter,
                                'content' => $body,
                                'follow_location' => false
                                )
                              );
                    $context  = stream_context_create($opts);
             
                    $url = self::URL.$action;
             
                    $result = file_get_contents($url, FALSE, $context);
             
                    $headers = $this -> parseHeaders($http_response_header);
             
                    if($headers['Content-Type'][0] == 'application/json')
                    {
                        return json_decode($result);
                    }
                    else
                    {
                        return $result;
                    }
                }
             
                private function parseHeaders($headers)
                {
                    // פונקציה שמקבלת מערך של שורות הכותרות
                    // הפונקציה מפרקת את קבצי הקוקי לתת-מערך נפרד
             
             
                    // מערך הכותרות
                    $head = array();
             
                    foreach( $headers as $k=>$v )
                    {
                        $t = explode( ':', $v, 2 );
             
                        if( isset( $t[1] ) )
                        {
                            if($t[0] == 'Set-Cookie')
                            {
                                $CookiesArr = array();
             
                                $cookies = explode( ';', $t[1]);
             
                                foreach($cookies as $cookie)
                                {
                                    $c = explode( '=', $cookie);
             
                                    if( isset( $c[1] ) )
                                    {
                                        $CookiesArr[ trim($c[0]) ] = trim( $c[1] );
                                    }
                                    else
                                    {
                                        $CookiesArr[] = trim( $c[0] );
                                    }
                                }
             
                                $head[ trim($t[0]) ] = $CookiesArr;
                            }
                            elseif($t[0] == 'Content-Type')
                            {
                                $arr = array();
             
                                $children = explode( ';', $t[1]);
             
                                foreach($children as $child)
                                {
                                    $c = explode( '=', $child);
             
                                    if( isset( $c[1] ) )
                                    {
                                        $arr[ trim($c[0]) ] = trim( $c[1] );
                                    }
                                    else
                                    {
                                        $arr[] = trim( $c[0] );
                                    }
                                }
             
                                $head[ trim($t[0]) ] = $arr;
                            }
                            else
                            {
                                $head[ trim($t[0]) ] = trim( $t[1] );
                            }
                        }
                        else
                        {
                            $head[] = $v;
                            if( preg_match( "#HTTP/[0-9\.]+\s+([0-9]+)#",$v, $out ) )
                            {
                                $head['reponse_code'] = intval($out[1]);
                            }
                        }
                    }
                    return $head;
                }
            }
             
             
            $con = new connecting_to_yemot_api('07*****','****');
            $token = "07******:*****";
             
             
             
            $File_list = $con -> connecting('GetSession')
             
            ?>
            
            
            
            
            
            
            Y תגובה 1 תגובה אחרונה תגובה ציטוט 1
            • מ
              מנסה מומחה @yonatan נערך לאחרונה על ידי

              @yonatan

              אני לא יודע בדיוק מה הבעיה ואין לי כח לבדוק שורה אחרי שורה,אבל גם אני אתמול ניסיתי להעלות קובץ עם המחלקה וזה החזיר שגיאות כל הזמן.

              אז העתקתי את המחלקה המקורית [מהפורום הישן] וזה עבד מצויין.

              הנה המחלקה

              class BodyPost
              {
              // part "multipart/form-data"
              public static function PartPost($name, $val)
              {
              $body = 'Content-Disposition: form-data; name="' . $name . '"';
              // check instance of oFile
              if($val instanceof oFile)
              {
              $file = $val->Name();
              $mime = $val->Mime();
              $cont = $val->Content();
              
              $body .= '; filename="' . $file . '"' . "\r\n";
              $body .= 'Content-Type: ' . $mime ."\r\n\r\n";
              $body .= $cont."\r\n";
              } else $body .= "\r\n\r\n".$val."\r\n";
              return $body;
              }
              
              public static function Get(array $post, $delimiter = '-------------0123456789')
              {
              if(is_array($post) && !empty($post))
              {
              $bool = true;
              //foreach($post as $val) if($val instanceof oFile) {$bool = true; break; };
              if($bool)
              {
              $ret = '';
              foreach($post as $name=>$val)
              $ret .= '--' . $delimiter. "\r\n". self::PartPost($name, $val);
              $ret .= "--" . $delimiter . "--\r\n";
              } else $ret = http_build_query($post);
              } else throw new \Exception('Error input param!');
              return $ret;
              }
              }
              
              class oFile
              {
              private $name;
              private $mime;
              private $content;
              
              public function __construct($name, $mime=null, $content=null)
              {
              if(is_null($content))
              {
              $info = pathinfo($name);
              // check is exist and readable file
              if(!empty($info['basename']) && is_readable($name))
              {
              $this->name = $info['basename'];
              // get MIME
              $this->mime = mime_content_type($name);
              // load file
              $content = file_get_contents($name);
              if($content!==false)
              {
              $this->content = $content;
              }
              else
              {
              throw new Exception('Don`t get content - "'.$name.'"');
              }
              }
              else
              {
              throw new Exception('Error param');
              }
              }
              else
              {
              $this->name = $name;
              if(is_null($mime)) $mime = mime_content_type($name);
              $this->mime = $mime;
              $this->content = $content;
              };
              }
              
              public function Name() { return $this->name; }
              
              public function Mime() { return $this->mime; }
              
              public function Content() { return $this->content; }
              
              }
              
              class connecting_to_yemot_api
              {
              public $token;
              
              const URL = 'https://www.call2all.co.il/ym/api/';
              
              public function __construct($user_name, $password)
              {
              $body = array('username' => $user_name, 'password' => $password);
              
              $body = http_build_query($body);
              
              $opts = array('http' => array(
              
              'method' => 'POST',
              
              'header' => "Content-Type: application/x-www-form-urlencoded",
              
              'content' => $body,
              
              'follow_location' => false) );
              
              $context = stream_context_create($opts);
              
              $url = self::URL.'Login';
              
              $result = file_get_contents($url, FALSE, $context);
              
              $result = json_decode($result);
              
              if($result -> responseStatus == 'OK')
              {
              $this -> token = $result -> token;
              
              return TRUE;
              }
              else
              {
              throw new Exception('שם המשתמש או הסיסמא של המערכת שגויים');
              }
              }
              
              public function __destruct()
              {
              $this -> connecting('Logout');
              }
              
              public function connecting($action, $body = array())
              {
              $delimiter = '----'.uniqid();
              
              $body['token'] = $this -> token;
              
              $body = BodyPost::Get($body, $delimiter);
              
              $opts = array('http' =>
              array(
              'method' => 'POST',
              'header' => 'Content-Type: multipart/form-data; boundary='.$delimiter,
              'content' => $body,
              'follow_location' => false
              )
              );
              $context = stream_context_create($opts);
              
              $url = self::URL.$action;
              
              $result = file_get_contents($url, FALSE, $context);
              
              $headers = $this -> parseHeaders($http_response_header);
              
              if($headers['Content-Type'][0] == 'application/json')
              {
              return json_decode($result);
              }
              else
              {
              return $result;
              }
              }
              
              private function parseHeaders($headers)
              {
              // פונקציה שמקבלת מערך של שורות הכותרות
              // הפונקציה מפרקת את קבצי הקוקי לתת-מערך נפרד
              
              
              // מערך הכותרות
              $head = array();
              
              foreach( $headers as $k=>$v )
              {
              $t = explode( ':', $v, 2 );
              
              if( isset( $t[1] ) )
              {
              if($t[0] == 'Set-Cookie')
              {
              $CookiesArr = array();
              
              $cookies = explode( ';', $t[1]);
              
              foreach($cookies as $cookie)
              {
              $c = explode( '=', $cookie);
              
              if( isset( $c[1] ) )
              {
              $CookiesArr[ trim($c[0]) ] = trim( $c[1] );
              }
              else
              {
              $CookiesArr[] = trim( $c[0] );
              }
              }
              
              $head[ trim($t[0]) ] = $CookiesArr;
              }
              elseif($t[0] == 'Content-Type')
              {
              $arr = array();
              
              $children = explode( ';', $t[1]);
              
              foreach($children as $child)
              {
              $c = explode( '=', $child);
              
              if( isset( $c[1] ) )
              {
              $arr[ trim($c[0]) ] = trim( $c[1] );
              }
              else
              {
              $arr[] = trim( $c[0] );
              }
              }
              
              $head[ trim($t[0]) ] = $arr;
              }
              else
              {
              $head[ trim($t[0]) ] = trim( $t[1] );
              }
              }
              else
              {
              $head[] = $v;
              if( preg_match( "#HTTP/[0-9\.]+\s+([0-9]+)#",$v, $out ) )
              {
              $head['reponse_code'] = intval($out[1]);
              }
              }
              }
              return $head;
              }
              }
              

              והנה החלקים שמצרפים המקוריים

              הזדהות [חובה]

              /*================יצירת אובייקט(מופע) חדש====================*/
              
              $con = new connecting_to_yemot_api('0773137770', '0000');
              
              

              שאר סוגי הפעולות לצירוף

              /*================קבלת מספר היחידות====================*/
              
              $a = $con -> connecting('GetSession');
              
              print_r($a);
              
              /*===============================================================*/
              
              
              
              /*================הפעלת קמפיין====================*/
              
              $body = array
              (
              // מספר הקמפיין
              'templateId' => '203584',
              );
              
              $a = $con -> connecting('RunCampaign', $body);
              
              print_r($a);
              
              /*===============================================================*/
              
              
              /*================הורדת קובץ====================*/
              
              $body = array
              (
              // נתיב הקובץ
              'path' => 'ivr/ext.ini',
              );
              
              $a = $con -> connecting('DownloadFile', $body);
              
              print_r($a);
              
              /*===============================================================*/
              
              
              
              /*================העלאת קובץ====================*/
              
              // יצירת הקובץ
              $File = new oFile('ext.ini', 'text/plain', 'type=menu');
              
              $body = array
              (
              'path' => 'ivr/ext.ini',
              'convertAudio' => 0,
              'fileUpload' => $File
              );
              
              $a = $con -> connecting('UploadFile', $body);
              
              print_r($a);
              
              /*===============================================================*/
              להלן המחלקה:
              קוד: בחירת הכל
              

              מקור

              וקרדיט ענק ל @מאזין-נלהב

              תגובה 1 תגובה אחרונה תגובה ציטוט 1
              • Y
                yonatan @ASS נערך לאחרונה על ידי

                @ass עכשיו אין שגיאה אבל לא מחזיר נתונים

                מ תגובה 1 תגובה אחרונה תגובה ציטוט 0
                • מ
                  מנסה מומחה @yonatan נערך לאחרונה על ידי מנסה

                  @yonatan

                  כי לא כתבת לו להחזיר נתונים

                  תוסיף את זה

                  print_r $File_list;
                  
                  Y תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • Y
                    yonatan @מנסה נערך לאחרונה על ידי

                    @מנסה הוא מחזיר שיש לו בעיה עם השורה הזאת

                    מ תגובה 1 תגובה אחרונה תגובה ציטוט 0
                    • מ
                      מנסה מומחה @yonatan נערך לאחרונה על ידי

                      @yonatan

                      ערכתי אותה מקודם

                      תנסה

                      print_r ($File_list);
                      

                      אם לא אז תנסה

                      print $File_list;
                      
                      
                      Y תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • Y
                        yonatan @מנסה נערך לאחרונה על ידי

                        @מנסה לא עובד

                        A תגובה 1 תגובה אחרונה תגובה ציטוט 0
                        • A
                          ASS @yonatan נערך לאחרונה על ידי

                          @yonatan
                          אולי תעלה פה את הקוד המלא (אני מניח שעדכנת אותו מאז הפוסט הקודם ) ואני יבדוק אצלי.

                          תגובה 1 תגובה אחרונה תגובה ציטוט 0
                          • מ
                            מנחם עזריה נערך לאחרונה על ידי

                            כתבתי ככה ועושה לי שגיאה מה הבעיה?

                            <?php

                            echo "זה קוד PHP";
                            //בשרת רגיל
                            define("URL", "https://www.call2all.co.il/ym/api/");
                            //בשרת פרייבט
                            //define("URL", "https://private.call2all.co.il/ym/api/");
                            //בשרת רגיל
                            //משתנה כדי למנוע בעיות בהעלאת קבצים בהמשך
                            $server = "www";
                            //בשרת פרייבט
                            //$server = "private";
                            class BodyPost
                            {
                            // part "multipart/form-data"
                            public static function PartPost($name, $val)
                            {
                            $body = 'Content-Disposition: form-data; name="' . $name . '"';
                            // check instance of oFile
                            if($val instanceof oFile)
                            {
                            $file = $val->Name();
                            $mime = $val->Mime();
                            $cont = $val->Content();

                                      $body .= '; filename="' . $file . '"' . "\r\n";
                                      $body .= 'Content-Type: ' . $mime ."\r\n\r\n";
                                      $body .= $cont."\r\n";
                                  } else $body .= "\r\n\r\n".$val."\r\n";
                                 return $body;
                             }
                            
                            public static function Get(array $post, $delimiter = '-------------0123456789')
                             {
                                 if(is_array($post) && !empty($post))
                                  {
                                      $bool = true;
                                      //foreach($post as $val) if($val instanceof oFile) {$bool = true; break; };
                                      if($bool)
                                       {
                                           $ret = '';
                                           foreach($post as $name=>$val)
                                               $ret .= '--' . $delimiter. "\r\n". self::PartPost($name, $val);
                                           $ret .= "--" . $delimiter . "--\r\n";
                                       } else $ret = http_build_query($post);
                                  } else throw new \Exception('Error input param!');
                                 return $ret;
                             }
                            

                            }

                            class oFile
                            {
                            private $name;
                            private $mime;
                            private $content;

                             public function __construct($name, $mime=null, $content=null)
                              {
                                  if(is_null($content))
                                   {
                                       $info = pathinfo($name);
                            

                            // check is exist and readable file
                            if(!empty($info['basename']) && is_readable($name))
                            {
                            $this->name = $info['basename'];
                            // get MIME
                            $this->mime = mime_content_type($name);
                            // load file
                            $content = file_get_contents($name);
                            if($content!==false)
                            {
                            $this->content = $content;
                            }
                            else
                            {
                            throw new Exception('Don`t get content - "'.$name.'"');
                            }
                            }
                            else
                            {
                            throw new Exception('Error param');
                            }
                            }
                            else
                            {
                            $this->name = $name;
                            if(is_null($mime)) $mime = mime_content_type($name);
                            $this->mime = $mime;
                            $this->content = $content;
                            };
                            }

                            public function Name() { return $this->name; }
                            
                            public function Mime() { return $this->mime; }
                            
                            public function Content() { return $this->content; }
                            

                            }

                            class connecting_to_yemot_api
                            {
                            public $token;

                            const URL = URL;
                            
                            public function __construct($user_name, $password)
                            {
                                $body = array('username' => $user_name, 'password' => $password);
                            
                                $body = http_build_query($body);
                            
                                $opts = array('http' => array(
                            
                                    'method'  => 'POST',
                            
                                    'header'  => "Content-Type: application/x-www-form-urlencoded",
                            
                                    'content' => $body,
                            
                                    'follow_location' => false) );
                            
                                 $context  = stream_context_create($opts);
                            
                                 $url = self::URL.'Login';
                            
                                    $result = file_get_contents($url, FALSE, $context);
                            
                                    $result = json_decode($result);
                            
                                    if($result -> responseStatus == 'OK')
                                    {
                                        $this -> token = $result -> token;
                            
                                        return TRUE;
                                    }
                                    else
                                    {
                                        throw new Exception('שם המשתמש או הסיסמא של המערכת שגויים');
                                    }
                            }
                            
                            public function __destruct()
                            {
                                $this -> connecting('Logout');
                            }
                            
                            public function connecting($action, $body = array())
                            {
                                $delimiter = '----'.uniqid();
                            
                                $body['token'] = $this -> token;
                            
                                $body = BodyPost::Get($body, $delimiter);
                            
                                $opts = array('http' =>
                                        array(
                                            'method'  => 'POST',
                                            'header'  => 'Content-Type: multipart/form-data; boundary='.$delimiter,
                                            'content' => $body,
                                            'follow_location' => false
                                            )
                                          );
                                $context  = stream_context_create($opts);
                            
                                $url = self::URL.$action;
                            
                                $result = file_get_contents($url, FALSE, $context);
                            
                                $headers = $this -> parseHeaders($http_response_header);
                            
                                if($headers['Content-Type'][0] == 'application/json')
                                {
                                    return json_decode($result);
                                }
                                else
                                {
                                    return $result;
                                }
                            }
                            
                            private function parseHeaders($headers)
                            {
                                // פונקציה שמקבלת מערך של שורות הכותרות
                                // הפונקציה מפרקת את קבצי הקוקי לתת-מערך נפרד
                            
                            
                                // מערך הכותרות
                                $head = array();
                            
                                foreach( $headers as $k=>$v )
                                {
                                    $t = explode( ':', $v, 2 );
                            
                                    if( isset( $t[1] ) )
                                    {
                                        if($t[0] == 'Set-Cookie')
                                        {
                                            $CookiesArr = array();
                            
                                            $cookies = explode( ';', $t[1]);
                            
                                            foreach($cookies as $cookie)
                                            {
                                                $c = explode( '=', $cookie);
                            
                                                if( isset( $c[1] ) )
                                                {
                                                    $CookiesArr[ trim($c[0]) ] = trim( $c[1] );
                                                }
                                                else
                                                {
                                                    $CookiesArr[] = trim( $c[0] );
                                                }
                                            }
                            
                                            $head[ trim($t[0]) ] = $CookiesArr;
                                        }
                                        elseif($t[0] == 'Content-Type')
                                        {
                                            $arr = array();
                            
                                            $children = explode( ';', $t[1]);
                            
                                            foreach($children as $child)
                                            {
                                                $c = explode( '=', $child);
                            
                                                if( isset( $c[1] ) )
                                                {
                                                    $arr[ trim($c[0]) ] = trim( $c[1] );
                                                }
                                                else
                                                {
                                                    $arr[] = trim( $c[0] );
                                                }
                                            }
                            
                                            $head[ trim($t[0]) ] = $arr;
                                        }
                                        else
                                        {
                                            $head[ trim($t[0]) ] = trim( $t[1] );
                                        }
                                    }
                                    else
                                    {
                                        $head[] = $v;
                                        if( preg_match( "#HTTP/[0-9\.]+\s+([0-9]+)#",$v, $out ) )
                                        {
                                            $head['reponse_code'] = intval($out[1]);
                                        }
                                    }
                                }
                                return $head;
                            }
                            

                            }
                            //שם משתמש וסיסמא של המערכת
                            $con = new connecting_to_yemot_api('077*****','');
                            $token = "077
                            :****";

                            //נתיב
                            $path = "ivr2:/2";

                            // פונקציה למספרי קבצים עוקבים
                            function FileNameToUpload($server, $token, $path){
                            $array = json_decode(file_get_contents("https://$server.call2all.co.il/ym/api//GetIVR2Dir?token=$token&path=$path"),true);
                            if($array["responseStatus"] == "OK"){
                            foreach($array["files"] as $key => $value){
                            if($value["fileType"] == "AUDIO" || $value["fileType"] == "TTS"){
                            $split = explode(".",$value["name"]);
                            if (is_numeric($split[0])){
                            break;
                            }
                            }
                            }
                            if($split[0] == null){
                            $NewFileName = 0;
                            }else{
                            $NewFileName = $split[0]+1;
                            }
                            //הפוך למינימום 3 ספרות/
                            return str_pad($NewFileName,3,"0",STR_PAD_LEFT);
                            }else{
                            //במקרה של שגיאה
                            echo "שגיאה";

                            }
                            

                            }
                            // קריאה לפונקציה.
                            $NewFileName = FileNameToUpload($server,$token,$path);
                            if($NewFileName != null){
                            //מכריז על שם של נתיב הקובץ להעלאה
                            $path_name = "$path/$NewFileName.wav";
                            }

                            //מאיפה לקחת את הקובץ
                            $File = new oFile('ext.ini', 'text/plain', file_get_contents("...."));

                            //להעלאת קבצים פקודה
                            $Upload_order = $con -> connecting('UploadFile',
                            [
                            //טוקן
                            'path' =>$path_name,
                            //המרה ל-wav אם מוגדר על 1 הקובץ יומר אם מוגדר על 0 לא
                            'convertAudio' => 1,
                            //קובץ להעלאה
                            'fileUpload' => $File
                            ]
                            );

                            ?>

                            ל תגובה 1 תגובה אחרונה תגובה ציטוט 0
                            • ל
                              לעזור לכולם מומחה @מנחם עזריה נערך לאחרונה על ידי

                              @מנחם-עזריה
                              איפה הוא נותן לך שגיאה בטלפון או בדפדפן?

                              תגובה 1 תגובה אחרונה תגובה ציטוט 0
                              • ש
                                שמואל מאיר @ASS נערך לאחרונה על ידי

                                @ASS את כל מה שאתה אומר להעתיק זה לאותו קובץ ראשון שפתחתי?

                                A תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                • A
                                  ASS @שמואל מאיר נערך לאחרונה על ידי

                                  @שמואל-מאיר כתב במדריך התחלת עבודה עם API של ימות משיח (חלק ב').:

                                  אותו קובץ ראשון שפתחתי?

                                  בדיוק

                                  תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                  • ש
                                    שמואל מאיר @ASS נערך לאחרונה על ידי

                                    @ASS עשיתי את כל מה שרשום וזה לא אומר שגיאה וגם לא מעלה את הקובץ לשלוחה.

                                    ש תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                    • ש
                                      שמואל מאיר @שמואל מאיר נערך לאחרונה על ידי

                                      פוסט זה נמחק!
                                      ל תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                      • ל
                                        לעזור לכולם מומחה @שמואל מאיר נערך לאחרונה על ידי

                                        @שמואל-מאיר
                                        זה אומר שאין לך מספיק מקום בשרת ואתה צריך להגדיל את הנפח שלו

                                        ש תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                        • ש
                                          שמואל מאיר @לעזור לכולם נערך לאחרונה על ידי

                                          @לעזור-לכולם מה זאת אומרת יש לי במחשב המון מקום, ועשיתי שהמחשב יהיה שרת כמו שכתב שם בהדרכה.

                                          ש תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                          • ש
                                            שמואל מאיר @שמואל מאיר נערך לאחרונה על ידי

                                            @ASS @לעזור-לכולם מה קורה אף אחד לא יכול לעזור לי קצת?

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