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

    אין מענה בשרת הapi, כתוב בc#

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

      @bluma אמר באין מענה בשרת הapi, כתוב בc#:

      אין מי שיודע איזה תשובה צריך להחזיר בcontroller מc# כדי להתחבר עם ימות המשיח?

      לא מבין בכתיבת שרתים עם C#, אבל ימות צריכים לקבל plain text.

      תגובה 1 תגובה אחרונה תגובה ציטוט 2
      • ק
        קו מהיר מורחק נערך לאחרונה על ידי

        ניסיתי את הקוד של מאזין נלהב הזה:
        בשרת כתבתי כך:

        const express = require("express");
        const yemot_router = require("yemot-router");
         
        const port = 3000;
        const app = express();
        const y = yemot_router();
         
        y.add_fn(async (call) => {
         
        	let massage = [{ type: "text", data: "היי, תקיש 10" }];
        	let r = await call.read(massage);
         
        	if(r.hangup) {
        		return;
        	}
         
        	console.log(r);
         
        	massage = [{ type: "text", data: "הקשת " + r.data }];
        	call.id_list_message(massage);
        });
         
        app.use("/", y);
         
        app.listen(port, () => {
        	console.log("lisen in port", port);
        });
        

        ובמערכת מתחת ללינק כתבתי כך:

        npm i yemot-router
        

        וזה אומר אין מענה משרת APIהאם הקוד לא נכון או סיבה אחרת?

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

          @קו-מהיר אני לא יודע C# אבל ברור שהשורה הזו npm i yemot-router אמורה להיות בתחילת הקוד ולא בשלוחה במערכת.
          יש לך שרת VPS או אחסון שיתופי?

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

            @מוטלה
            יש לי שרת וורדפס חינמי

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

              @קו-מהיר אתה לא יכול להשתמש עם node / python.
              תעבוד עם המחלקה הזאת
              https://f2.freeivr.co.il/post/9067

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

                @מוטלה
                איפה לכתוב? ומה לכתוב במערכת?
                חוץ מזה שאני רוצה שהמאזין יקיש מערכת וסיסמה, מה אני אמור לעשות???

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

                  @קו-מהיר ואז מה? להשמיע לו את זה?

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

                    @מוטלה
                    כן פשוט שיהיה אפשרות שמקיש מערכת ומשמיע ומבקש אישור ואח"כ סיסמא ומשמיע ומבקש אישור
                    התכוונת למחלקה הזאת?

                    $SetSite = $_GET["SetSite"];
                    	if ($SetSite == NULL) {
                    	define("URL", "https://www.call2all.co.il/ym/api/");
                    }
                    	if ($SetSite == "private") {
                    	define("URL", "https://www.private.call2all.co.il/ym/api/");
                    }
                    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;
                        }
                    }
                    

                    זה נראה ארוך מאוד מאוד!!!

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

                      @קו-מהיר כן, אבל בשביל זה לא צריך את המחלקה:

                      <?php
                      $ApiDID = $_GET['ApiDID'];
                      $password = $_GET['password'];
                      if ($ApiDID == NULL){echo "read=t-אנא הקש את מספר המערכת שלך ובסיום הקש סולמית=ApiDID,no,10,9,7,No";exit();}
                      if ($password == NULL){echo "read=t-נא הקש את סיסמת המערכת ובסיום הקש סולמית=password,no,,,7,No";exit();}
                      ?>
                      

                      בשלוחה אתה צריך להוסיף גם את זה api_did_send=no

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

                        @מוטלה
                        ומה להגדיר אח"כ? אני רוצה שיהיה לו תפריט מסוים לדוג' האם להגדיר הגדרה מסוימת או לא וחוץ מזה, מה זה המחלקה לעיל?

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

                          @קו-מהיר בקיצור, אתה צריך ללמוד php ואח"כ ללמוד איך להתממשק עם ימות. איפה אתה אוחז?
                          תראה כאן
                          https://f2.freeivr.co.il/post/36214

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

                            @מוטלה
                            ניסיתי אתרשתטקאבל הוא לא מסביר איך לנהל שרת חינמי אלא רק איך להתקין על המחשב.

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

                              @קו-מהיר אותו דבר רק במקום לכתוב את הקוד בתוכנה אתה כותב ישירות בטופס php בשרת, ואח"כ את מריץ את הכתובת של הקובץ בדפדפן.
                              בשרת שלך למשל את מריץ את זה כך:

                              https://******.000webhostapp.com/שם הקובץ.php
                              
                              ק תגובה 1 תגובה אחרונה תגובה ציטוט 0
                              • ק
                                קו מהיר מורחק @מוטלה נערך לאחרונה על ידי

                                @מוטלה
                                את זה ידעתי, אבל האם לכתוב כתובת קובץ או תקייה והאם הסיומת PHP זה רק במערכת או גם בשרת?

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

                                  @קו-מהיר תפתח קובץ בשרת, תקרא לו בשם כל שהוא ובסיומת php.
                                  שים לב שזה יהיה בתיקיית public_html ואח"כ אתה מריץ ישירות בדפדפן את השם של הקובץ עם הסיומת.

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

                                    @מוטלה
                                    אה, כי אני כתבתי את הקובץ בתקייה הראשית

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

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

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

                                        @קו-מהיר נראה לי שגיאה בתרגום, תבטל את זה.

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

                                          @מוטלה
                                          אתה צודק, הוא מתרגם לי הכל גם את הקבצים של ה-PHP
                                          איך אני מבטל? פשוט כששואל אם אנגלית או עברית ללחוץ עברית?

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

                                            @מוטלה
                                            זה לא משמיע את המספר שהקיש!

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