commit
cf24a8d858
6 changed files with 486 additions and 0 deletions
@ -0,0 +1,8 @@ |
|||||||
|
MPOS Telegram push notifications binding |
||||||
|
===== |
||||||
|
|
||||||
|
Here is example of telegram based push notificator and webhook handler. |
||||||
|
|
||||||
|
####TODO |
||||||
|
|
||||||
|
Write more information about this stuff |
@ -0,0 +1,45 @@ |
|||||||
|
<?php |
||||||
|
define('TGAPI_URL', 'https://api.telegram.org/bot' . $this->config['push']['telegram']['api_key']); |
||||||
|
|
||||||
|
class Notifications_Telegramnew implements IPushNotification { |
||||||
|
|
||||||
|
private $tgid; |
||||||
|
public function __construct($tgid){ |
||||||
|
$this->tgid = $tgid; |
||||||
|
} |
||||||
|
|
||||||
|
static $priorities = array( |
||||||
|
0 => 'info', |
||||||
|
1 => 'warning', |
||||||
|
2 => 'error', |
||||||
|
); |
||||||
|
|
||||||
|
public static function getName(){ |
||||||
|
return "Telegram"; |
||||||
|
} |
||||||
|
|
||||||
|
public static function getParameters(){ |
||||||
|
return array( |
||||||
|
'tgid' => 'Your Telegram ID from bot', |
||||||
|
); |
||||||
|
} |
||||||
|
|
||||||
|
public function notify($message, $severity = 'info', $event = null){ |
||||||
|
$patterns = array ('<br/>'); |
||||||
|
$replace = array (''); |
||||||
|
$msg = str_replace ($patterns, $replace, $message); |
||||||
|
|
||||||
|
curl_setopt_array($ch = curl_init(), array( |
||||||
|
CURLOPT_URL => TGAPI_URL . "/sendMessage", |
||||||
|
CURLOPT_POST => true, |
||||||
|
CURLOPT_RETURNTRANSFER => true, |
||||||
|
CURLOPT_POSTFIELDS => http_build_query($data = array( |
||||||
|
"chat_id" => $this->tgid, |
||||||
|
"text" => $msg, |
||||||
|
"parse_mode" => "HTML", |
||||||
|
)), |
||||||
|
)); |
||||||
|
curl_exec($ch); |
||||||
|
curl_close($ch); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,322 @@ |
|||||||
|
<?php |
||||||
|
$defflip = (!cfip()) ? exit(header('HTTP/1.1 401 Unauthorized')) : 1; |
||||||
|
|
||||||
|
/** |
||||||
|
* Do not edit this unless you have confirmed that your config has been updated! |
||||||
|
* Also the URL to check for the most recent upstream versions available |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#config-version |
||||||
|
**/ |
||||||
|
$config['version'] = '1.0.1'; |
||||||
|
$config['version_url'] = 'https://raw.githubusercontent.com/MPOS/php-mpos/master/include/version.inc.php'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Unless you disable this, we'll do a quick check on your config first. |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#config-check |
||||||
|
*/ |
||||||
|
$config['skip_config_tests'] = false; |
||||||
|
|
||||||
|
/** |
||||||
|
* Unless you disable this, we'll do a check for a valid coin address on registration. |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#check-for-valid-wallet-address |
||||||
|
*/ |
||||||
|
$config['check_valid_coinaddress'] = true; |
||||||
|
|
||||||
|
/** |
||||||
|
* Defines |
||||||
|
* Debug setting and salts for hashing passwords |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#defines--salts |
||||||
|
*/ |
||||||
|
$config['DEBUG'] = 0; |
||||||
|
$config['SALT'] = 'PLEASEMAKEMESOMETHINGRANDOM'; |
||||||
|
$config['SALTY'] = 'THISSHOULDALSOBERRAANNDDOOM'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Coin Algorithm |
||||||
|
* Algorithm used by this coin, sha256d or scrypt |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#algorithm |
||||||
|
**/ |
||||||
|
$config['algorithm'] = 'scrypt'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Getbalance API Calls |
||||||
|
* System used for getting actual Balance from Wallet |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#getbalance-api-calls |
||||||
|
**/ |
||||||
|
$config['getbalancewithunconfirmed'] = true; |
||||||
|
|
||||||
|
/** |
||||||
|
* Database configuration |
||||||
|
* MySQL database configuration |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#database-configuration |
||||||
|
**/ |
||||||
|
$config['db']['host'] = 'localhost'; |
||||||
|
$config['db']['user'] = 'someuser'; |
||||||
|
$config['db']['pass'] = 'somepass'; |
||||||
|
$config['db']['port'] = 3306; |
||||||
|
$config['db']['name'] = 'mpos'; |
||||||
|
// Disabled by default and set in bootstrap if unset, but left in here so |
||||||
|
// people know it exists |
||||||
|
// $config['db']['shared']['accounts'] = $config['db']['name']; |
||||||
|
// $config['db']['shared']['workers'] = $config['db']['name']; |
||||||
|
// $config['db']['shared']['news'] = $config['db']['name']; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Setup read-only/slave database server for selects (read queries) |
||||||
|
**/ |
||||||
|
$config['db-ro']['enabled'] = false; |
||||||
|
$config['db-ro']['host'] = 'localhost'; |
||||||
|
$config['db-ro']['user'] = 'someuser'; |
||||||
|
$config['db-ro']['pass'] = 'somepass'; |
||||||
|
$config['db-ro']['port'] = 3306; |
||||||
|
$config['db-ro']['name'] = 'mpos'; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Local wallet RPC |
||||||
|
* RPC configuration for your daemon/wallet |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#local-wallet-rpc |
||||||
|
**/ |
||||||
|
$config['wallet']['type'] = 'http'; |
||||||
|
$config['wallet']['host'] = 'localhost:19334'; |
||||||
|
$config['wallet']['username'] = 'testnet'; |
||||||
|
$config['wallet']['password'] = 'testnet'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Swiftmailer configuration |
||||||
|
* Configure your way to send mails |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#swiftmailer |
||||||
|
**/ |
||||||
|
$config['swiftmailer']['type'] = 'sendmail'; |
||||||
|
$config['swiftmailer']['sendmail']['path'] = '/usr/sbin/sendmail'; |
||||||
|
$config['swiftmailer']['sendmail']['options'] = '-bs'; |
||||||
|
$config['swiftmailer']['smtp']['host'] = 'your.mail-relay.com'; |
||||||
|
$config['swiftmailer']['smtp']['port'] = '587'; |
||||||
|
$config['swiftmailer']['smtp']['encryption'] = 'tls'; |
||||||
|
$config['swiftmailer']['smtp']['username'] = ''; |
||||||
|
$config['swiftmailer']['smtp']['password'] = ''; |
||||||
|
$config['swiftmailer']['smtp']['throttle'] = 100; |
||||||
|
|
||||||
|
/** |
||||||
|
* Getting Started Config |
||||||
|
* Shown to users in the 'Getting Started' section |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#getting-started |
||||||
|
**/ |
||||||
|
$config['gettingstarted']['coinname'] = 'Litecoin'; |
||||||
|
$config['gettingstarted']['coinurl'] = 'http://www.litecoin.org'; |
||||||
|
$config['gettingstarted']['stratumurl'] = ''; |
||||||
|
$config['gettingstarted']['stratumport'] = '3333'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Ticker API |
||||||
|
* Fetch exchange rates via an API |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#ticker-api |
||||||
|
**/ |
||||||
|
$config['price']['enabled'] = false; |
||||||
|
$config['price']['url'] = 'https://btc-e.nz'; |
||||||
|
$config['price']['target'] = '/api/2/ltc_usd/ticker'; |
||||||
|
$config['price']['currency'] = 'USD'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Automatic Payout Thresholds |
||||||
|
* Minimum and Maximum auto payout amount |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#automatic-payout-thresholds |
||||||
|
**/ |
||||||
|
$config['ap_threshold']['min'] = 1; |
||||||
|
$config['ap_threshold']['max'] = 250; |
||||||
|
|
||||||
|
/** |
||||||
|
* Minimum manual Payout Threshold |
||||||
|
* Minimum manual payout amount |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#manual-payout-threshold |
||||||
|
**/ |
||||||
|
$config['mp_threshold'] = 1; |
||||||
|
|
||||||
|
/** |
||||||
|
* Donation thresholds |
||||||
|
* Minimum donation amount in percent |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#donation-thresholds |
||||||
|
**/ |
||||||
|
$config['donate_threshold']['min'] = 1; |
||||||
|
|
||||||
|
/** |
||||||
|
* Account Specific Settings |
||||||
|
* Settings for each user account |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#account-specific-settings |
||||||
|
**/ |
||||||
|
$config['accounts']['invitations']['count'] = 5; |
||||||
|
|
||||||
|
/** |
||||||
|
* Currency |
||||||
|
* Shorthand name for the currency |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#currency |
||||||
|
*/ |
||||||
|
$config['currency'] = 'LTC'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Coin Target |
||||||
|
* Target time for coins to be generated |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#coin-target |
||||||
|
**/ |
||||||
|
$config['cointarget'] = '150'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Coin Diff Change |
||||||
|
* Amount of blocks between difficulty changes |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#coin-diff-change |
||||||
|
**/ |
||||||
|
$config['coindiffchangetarget'] = 2016; |
||||||
|
|
||||||
|
/** |
||||||
|
* TX Fees |
||||||
|
* Fees applied to transactions |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#tx-fees |
||||||
|
**/ |
||||||
|
$config['txfee_auto'] = 0.1; |
||||||
|
$config['txfee_manual'] = 0.1; |
||||||
|
|
||||||
|
/** |
||||||
|
* Block & Pool Bonus |
||||||
|
* Bonus coins for blockfinder or a pool bonus for everyone |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#block-bonus |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#pool-bonus |
||||||
|
*/ |
||||||
|
$config['block_bonus'] = 0; |
||||||
|
$config['pool_bonus'] = 0; |
||||||
|
$config['pool_bonus_type'] = 'payout'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Payout System |
||||||
|
* Payout system chosen |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#payout-system |
||||||
|
**/ |
||||||
|
$config['payout_system'] = 'prop'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Sendmany Support |
||||||
|
* Enable/Disable Sendmany RPC method |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#sendmany-support |
||||||
|
**/ |
||||||
|
$config['sendmany']['enabled'] = false; |
||||||
|
|
||||||
|
/** |
||||||
|
* Transaction Limits |
||||||
|
* Number of transactions per payout run |
||||||
|
**/ |
||||||
|
$config['payout']['txlimit_manual'] = 500; |
||||||
|
$config['payout']['txlimit_auto'] = 500; |
||||||
|
|
||||||
|
/** |
||||||
|
* Round Purging |
||||||
|
* Round share purging configuration |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#round-purging |
||||||
|
**/ |
||||||
|
$config['purge']['sleep'] = 1; |
||||||
|
$config['purge']['shares'] = 25000; |
||||||
|
|
||||||
|
/** |
||||||
|
* Share Archiving |
||||||
|
* Share archiving configuration details |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#archiving |
||||||
|
**/ |
||||||
|
$config['archive']['maxrounds'] = 10; |
||||||
|
$config['archive']['maxage'] = 60 * 24; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Pool Fees |
||||||
|
* Fees applied to users |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#pool-fees |
||||||
|
*/ |
||||||
|
$config['fees'] = 0; |
||||||
|
|
||||||
|
/** |
||||||
|
* PPLNS |
||||||
|
* Pay Per Last N Shares |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#pplns-settings |
||||||
|
*/ |
||||||
|
$config['pplns']['shares']['default'] = 4000000; |
||||||
|
$config['pplns']['shares']['type'] = 'blockavg'; |
||||||
|
$config['pplns']['blockavg']['blockcount'] = 10; |
||||||
|
$config['pplns']['reverse_payout'] = true; |
||||||
|
$config['pplns']['dynamic']['percent'] = 30; |
||||||
|
|
||||||
|
/** |
||||||
|
* Difficulty |
||||||
|
* Difficulty setting for stratum/pushpool |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#pool-target-difficulty |
||||||
|
*/ |
||||||
|
$config['difficulty'] = 20; |
||||||
|
|
||||||
|
/** |
||||||
|
* Block Reward |
||||||
|
* Block reward configuration details |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#reward-settings |
||||||
|
**/ |
||||||
|
$config['reward_type'] = 'block'; |
||||||
|
$config['reward'] = 50; |
||||||
|
|
||||||
|
/** |
||||||
|
* Confirmations |
||||||
|
* Credit and Network confirmation settings |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#confirmations |
||||||
|
*/ |
||||||
|
$config['confirmations'] = 120; |
||||||
|
$config['network_confirmations'] = 120; |
||||||
|
|
||||||
|
/** |
||||||
|
* PPS |
||||||
|
* Pay Per Share configuration details |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#pps-settings |
||||||
|
**/ |
||||||
|
$config['pps']['reward']['default'] = 50; |
||||||
|
$config['pps']['reward']['type'] = 'blockavg'; |
||||||
|
$config['pps']['blockavg']['blockcount'] = 10; |
||||||
|
|
||||||
|
/** |
||||||
|
* Memcache |
||||||
|
* Memcache configuration details |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#memcache |
||||||
|
**/ |
||||||
|
$config['memcache']['enabled'] = true; |
||||||
|
$config['memcache']['host'] = 'localhost'; |
||||||
|
$config['memcache']['port'] = 11211; |
||||||
|
$config['memcache']['keyprefix'] = 'mpos_'; |
||||||
|
$config['memcache']['expiration'] = 90; |
||||||
|
$config['memcache']['splay'] = 15; |
||||||
|
$config['memcache']['force']['contrib_shares'] = false; |
||||||
|
$config['memcache']['sasl'] = false; |
||||||
|
$config['memcache']['sasl']['username'] = ''; |
||||||
|
$config['memcache']['sasl']['password'] = ''; |
||||||
|
|
||||||
|
/** |
||||||
|
* Cookies |
||||||
|
* Cookie configuration details |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#cookies |
||||||
|
**/ |
||||||
|
$config['cookie']['duration'] = '1440'; |
||||||
|
$config['cookie']['domain'] = ''; |
||||||
|
$config['cookie']['path'] = '/'; |
||||||
|
$config['cookie']['httponly'] = true; |
||||||
|
$config['cookie']['secure'] = false; |
||||||
|
|
||||||
|
/** |
||||||
|
* Smarty Cache |
||||||
|
* Enable smarty cache and cache length |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#smarty-cache |
||||||
|
**/ |
||||||
|
$config['smarty']['cache'] = 0; |
||||||
|
$config['smarty']['cache_lifetime'] = 30; |
||||||
|
|
||||||
|
/** |
||||||
|
* System load |
||||||
|
* Disable some calls when high system load |
||||||
|
* https://github.com/MPOS/php-mpos/wiki/Config-Setup#system-load |
||||||
|
**/ |
||||||
|
$config['system']['load']['max'] = 10.0; |
||||||
|
|
||||||
|
/** |
||||||
|
* Telegram notificator configuration |
||||||
|
* To use push notifications via Telegram you need create bot and set here its API key |
||||||
|
**/ |
||||||
|
$config['push']['telegram']['api_key'] = ''; |
@ -0,0 +1,71 @@ |
|||||||
|
<?php |
||||||
|
$supress_master = 1; |
||||||
|
|
||||||
|
define('TGAPI_URL', 'https://api.telegram.org/bot' . $config['push']['telegram']['api_key']); |
||||||
|
|
||||||
|
// https://gist.github.com/theMiddleBlue/6d5e9082e0c3c378bfb037795b2570b8 |
||||||
|
if(!preg_match('/^149\.154\.167\.(19[7-9]|20[0-9]|21[0-9]|22[0-9]|23[0-3])$/', $_SERVER['REMOTE_ADDR'])) { |
||||||
|
die('IP Address not allowed.'); |
||||||
|
} |
||||||
|
if($_SERVER['REQUEST_METHOD'] != 'POST') { |
||||||
|
die('Request method not allowed.'); |
||||||
|
} |
||||||
|
|
||||||
|
$content = file_get_contents("php://input"); |
||||||
|
$update = json_decode($content, true); |
||||||
|
$chatID = $update["message"]["chat"]["id"]; |
||||||
|
$message = $update["message"]["text"]; |
||||||
|
|
||||||
|
$prepareResponse = function ($message) use ($chatID, $api, $setting, $block, $worker, $mysqli){ |
||||||
|
switch($message){ |
||||||
|
case "/start": |
||||||
|
$response = "Hi there! I'm ".($setting->getValue('website_title')?:"PHP-MPOS")." notifications bot.".PHP_EOL."Type /help to see all commands!"; |
||||||
|
break; |
||||||
|
case "/help": |
||||||
|
$response = "/api - Get API state of pool frontend".PHP_EOL."/getid - Show your id, required for pool notifications".PHP_EOL."/workers - Show information about your workers"; |
||||||
|
break; |
||||||
|
case "/api": |
||||||
|
$response = "API state: ".($api->isActive()?"enabled":"disabled"); |
||||||
|
break; |
||||||
|
case "/getid": |
||||||
|
$response = "Your ID is ".$chatID.PHP_EOL."Use that ID on pool notifications settings page."; |
||||||
|
break; |
||||||
|
// That is example of command, which will send information to user about his workers. |
||||||
|
case "/workers": |
||||||
|
// Get userID in MPOS by chatID |
||||||
|
$stmt = $mysqli->prepare("SELECT account_id as user_id FROM user_settings WHERE value LIKE '%".$chatID."%' LIMIT 1"); |
||||||
|
if($stmt && $stmt->execute() && $result = $stmt->get_result()) |
||||||
|
if($user_id = $result->fetch_object()){ // If user with chatID found |
||||||
|
if ( ! $interval = $setting->getValue('statistics_ajax_data_interval')) $interval = 300; |
||||||
|
$workers = $worker->getWorkers($user_id, $interval); // Get all workers and prepare message |
||||||
|
foreach ($workers as $worker) |
||||||
|
$response .= sprintf("*Username: %s*\nShares: %s\nHashrate: %s\nDifficulty: %s\n\n", $worker[username], $worker[shares], $worker[hashrate], $worker[difficulty]); |
||||||
|
} else { // Else write about requirement to provide chatID in notification settings |
||||||
|
$response = "We coudn't find you in our database.".PHP_EOL."Make sure that you set ID in notifications settings on pool."; |
||||||
|
} |
||||||
|
break; |
||||||
|
default: |
||||||
|
$response = "mumble-mumble..."; |
||||||
|
break; |
||||||
|
} |
||||||
|
return $response; |
||||||
|
}; |
||||||
|
|
||||||
|
function sendMessage($chatID, $reply){ |
||||||
|
curl_setopt_array($ch = curl_init(), array( |
||||||
|
CURLOPT_URL => TGAPI_URL . "/sendMessage", |
||||||
|
CURLOPT_POST => true, |
||||||
|
CURLOPT_RETURNTRANSFER => true, |
||||||
|
CURLOPT_POSTFIELDS => http_build_query($data = array( |
||||||
|
"chat_id" => $chatID, |
||||||
|
"text" => $reply, |
||||||
|
"parse_mode" => "Markdown", |
||||||
|
)), |
||||||
|
)); |
||||||
|
curl_exec($ch); |
||||||
|
curl_close($ch); |
||||||
|
} |
||||||
|
|
||||||
|
$reply = $prepareResponse($message); |
||||||
|
sendMessage($chatID, $reply); |
||||||
|
|
@ -0,0 +1,24 @@ |
|||||||
|
<?php |
||||||
|
$supress_master = 1; |
||||||
|
|
||||||
|
if (!$user->isAuthenticated() || !$user->isAdmin($_SESSION['USERDATA']['id'])) { |
||||||
|
header("HTTP/1.1 404 Page not found"); |
||||||
|
die("404 Page not found"); |
||||||
|
} |
||||||
|
|
||||||
|
define('TGAPI_URL', 'https://api.telegram.org/bot' . $config['push']['telegram']['api_key']); |
||||||
|
|
||||||
|
$pushto = $_SERVER['SCRIPT_NAME'].'?page=tghook'; |
||||||
|
$hook_url = 'https://' . $_SERVER['HTTP_HOST'] . $pushto; |
||||||
|
|
||||||
|
curl_setopt_array($ch = curl_init(), array( |
||||||
|
CURLOPT_URL => TGAPI_URL . "/setWebhook", |
||||||
|
CURLOPT_POST => true, |
||||||
|
CURLOPT_RETURNTRANSFER => true, |
||||||
|
CURLOPT_POSTFIELDS => http_build_query($data = array( |
||||||
|
"url" => $hook_url, |
||||||
|
)), |
||||||
|
)); |
||||||
|
echo curl_exec($ch); |
||||||
|
curl_close($ch); |
||||||
|
|
@ -0,0 +1,16 @@ |
|||||||
|
<?php |
||||||
|
$supress_master = 1; |
||||||
|
|
||||||
|
if (!$user->isAuthenticated() || !$user->isAdmin($_SESSION['USERDATA']['id'])) { |
||||||
|
header("HTTP/1.1 404 Page not found"); |
||||||
|
die("404 Page not found"); |
||||||
|
} |
||||||
|
|
||||||
|
define('TGAPI_URL', 'https://api.telegram.org/bot' . $config['push']['telegram']['api_key']); |
||||||
|
|
||||||
|
curl_setopt_array($ch = curl_init(), array( |
||||||
|
CURLOPT_URL => TGAPI_URL . "/deleteWebhook", |
||||||
|
CURLOPT_RETURNTRANSFER => true, |
||||||
|
)); |
||||||
|
echo curl_exec($ch); |
||||||
|
curl_close($ch); |
Loading…
Reference in new issue