_username = $username; $this->_password = $password; } public function setParameter($key, $value) { $this->_parameters[$key] = $value; } public function getParameter($key, $defvalue = false) { if (isset($this->_parameters[$key])) { return $this->_parameters[$key]; } return $defvalue; } public function getRequiredParams() { return self::$REQUIRED_PARAMETERS; } public function getServiceURL($type = false) { if ($type) { switch (strtoupper($type)) { case self::SERVICE_AUTH : return self::SERVICE_URI . ''; case self::SERVICE_SEND : return self::SERVICE_URI . 'bot'.'6118440594:AAGpqeudXF9wHSZ7vpAsXQ4Jp5XXlUoqB1A'.'/sendMessage'; case self::SERVICE_QUERY : return self::SERVICE_URI . ''; } } return false; } protected function prepareParameters() { $params = array('username' => $this->_username, 'password' => $this->_password); foreach (self::$REQUIRED_PARAMETERS as $key) { $params[$key] = $this->getParameter($key); } return $params; } public function send($message, $tonumbers) { if (!is_array($tonumbers)) { $tonumbers = array($tonumbers); } //foreach ($tonumbers as $i => $tonumber) { // $tonumbers[$i] = str_replace(array('(', ')', ' ', '+', '-'), '', $tonumber); //} foreach($tonumbers as $tonumbers) { $message = implode("\r\n", explode('\r\n', $message)); //line braker for telegram $params = $this->prepareParameters(); $params['text'] = $message; $params['chat_id'] = $tonumbers; $serviceURL = $this->getServiceURL(self::SERVICE_SEND); $httpClient = new Vtiger_Net_Client($serviceURL); $messageId = $httpClient->doGet($params); $queryResult = $this->query($messageId); $result = array( 'id' => $messageId, 'status' => $queryResult['status'], 'error' => false ); if ($queryResult['status'] == self::MSG_STATUS_FAILED) { $result['error'] = true; } $results = array(); foreach ($tonumbers as $i => $tonumber) { $results[$i] = $result; $results[$i]['chat_id'] = $tonumber; } } return $results; } public function query($messageid) { $params = array('username' => $this->_username, 'password' => $this->_password, 'msgid' => $messageid); $serviceURL = $this->getServiceURL(self::SERVICE_QUERY); $httpClient = new Vtiger_Net_Client($serviceURL); $response = $httpClient->doGet($params); $result = array(); if (stripos($response, 'Delivered') !== false) { $result['status'] = self::MSG_STATUS_DISPATCHED; $result['needlookup'] = 0; $result['statusmessage'] = 'Message delivered'; } else if (stripos($response, 'Submitted') !== false) { $result['status'] = self::MSG_STATUS_PROCESSING; $result['needlookup'] = 1; $result['statusmessage'] = 'Message submitted for processing'; } else { $result['status'] = self::MSG_STATUS_FAILED; $result['needlookup'] = 0; $result['statusmessage'] = 'Message delivery failed.'; } return $result; } } ?>