@פיסטוק-חלבי
אשמח להצטרף לקבוצה ללימודי API + PHP במייל Y10406400@gmail.com
תודה
הפוסטים הטובים ביותר שנוצרו על ידי מנחם עזריה
-
RE: קבוצת לימוד APIפורסם בעזרה הדדית למשתמשים מתקדמים
פוסטים אחרונים שנוצרו על ידי מנחם עזריה
-
RE: מדריך התחלת עבודה עם API של ימות משיח (חלק ב').פורסם בפורום מפתחים API
כתבתי ככה ועושה לי שגיאה מה הבעיה?
<?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 למס' אנשיםפורסם בעזרה הדדית למשתמשים מתקדמים
האם יש אפשרות בהודעות אישיות להשאיר הודעה מסוימת ל 10 אנשים בהגדרה אחת או שצריך להכניס את ההודעה לכל אחד בפני עצמו?
-
RE: המערכת מפנה לשלוחות עפ"י המספר האישיפורסם בעזרה הדדית למשתמשים מתקדמים
@33064325
תודה על המענה אך זה לא עובד, אשמח לרעיון אחר -
המערכת מפנה לשלוחות עפ"י המספר האישיפורסם בעזרה הדדית למשתמשים מתקדמים
אני מעוניין שבכניסה למערכת המערכת תבקש מהלקוח להקיש את המספר האישי שאותו קיבל ברישום בכניסה הקודמת ולפי המספר שיקיש המערכת תשלח אותו לשלוחה המתאימה לדוג' ממספ' 1001-4000 יכנסו לשלוחה 2 וממספ' 4001-7000 יכנסו לשלוחה 3 אשמח לעזרה איך מגדירים את זה
-
RE: קבוצת לימוד APIפורסם בעזרה הדדית למשתמשים מתקדמים
@פיסטוק-חלבי
אשמח להצטרף לקבוצה ללימודי API + PHP במייל Y10406400@gmail.com
תודה -
RE: עזרה בבניית שלוחה ותגובה על הודעה שנקלטהפורסם בעזרה הדדית למשתמשים מתקדמים
@נץ-החמה לא זה לא נפתר, התייאשתי מלמצוא משהו מתאים וירדתי מהרעיון
-
שליחת דו"חות של תורים לפקספורסם בעזרה הדדית למשתמשים מתקדמים
מישהו יודע אם יש אפשרות שדו"חות של קביעת תורים ישלחו לי בפקס (ללא כל צורך לפתוח את האתר או לגשת למייל)
או שיש מקום לשמוע תורים שנקבעו בשלוחה בטלפון -
עזרה בבניית שלוחה ותגובה על הודעה שנקלטהפורסם בעזרה הדדית למשתמשים מתקדמים
שלום, האם קיימת שלוחת פונקציה בה משאירים הודעות ולקוחות שנכנסים שומעים את ההודעות וכביכול תופסים הודעה שרלונטית אליהם?