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

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

    פורום מפתחים API
    8
    24
    2552
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • 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
                          • ש
                            שמואל מאיר נערך לאחרונה על ידי

                            זה עכשיו כותב לי כך:
                            Screenshot_3.png

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