代码功能更新
This commit is contained in:
Executable
+586
@@ -0,0 +1,586 @@
|
||||
<?php
|
||||
|
||||
namespace app\service;
|
||||
|
||||
class Telegram
|
||||
{
|
||||
private $ret;
|
||||
private $token;
|
||||
private static $inlineResults = array();
|
||||
|
||||
public function __construct($token = NULL)
|
||||
{
|
||||
$this->token = $token;
|
||||
// parent::__construct();
|
||||
}
|
||||
/**
|
||||
* http_build_query兼容多维数组,返回结果数组仍支持http_build_query函数处理
|
||||
* @author Zjmainstay https://bugs.php.net/bug.php?id=67477
|
||||
* @param $data array curl传递参数的数组(原装)
|
||||
* @return array 可curl传递的格式化数组
|
||||
*/
|
||||
function http_build_query_develop($data)
|
||||
{
|
||||
if (!is_array($data)) {
|
||||
return $data;
|
||||
}
|
||||
foreach ($data as $key => $val) {
|
||||
if (is_array($val)) {
|
||||
foreach ($val as $k => $v) {
|
||||
if (is_array($v)) {
|
||||
$data = array_merge($data, http_build_query_develop(array("{$key}[{$k}]" => $v)));
|
||||
} else {
|
||||
$data["{$key}[{$k}]"] = $v;
|
||||
}
|
||||
}
|
||||
unset($data[$key]);
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
private function fetch($url, $postdata = null)
|
||||
{
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
if (!is_null($postdata)) {
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->http_build_query_develop($postdata));
|
||||
}
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
$re = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
|
||||
return $re;
|
||||
}
|
||||
public function callMethod($method, $param = array(), $detection = true)
|
||||
{
|
||||
/** 访问网页 */
|
||||
$url = 'https://api.telegram.org/bot' . $this->token . '/' . $method;
|
||||
$ret = json_decode($this->fetch($url, $param), true);
|
||||
|
||||
/** 分析结果 */
|
||||
if ($ret['ok'] == false && $detection == true) {
|
||||
if ($ret['error_code'] != 400 && $ret['error_code'] != 403) {
|
||||
$errorModel = new ErrorModel;
|
||||
$errorModel->sendError(MASTER, '尝试调用 ' . $method . " 时出现问题,参数表如下:\n" . print_r($param, true) . "\n\n返回结果:\n" . print_r($ret, true));
|
||||
}
|
||||
}
|
||||
|
||||
/** 返回 */
|
||||
return $ret;
|
||||
}
|
||||
public function getWebhook()
|
||||
{
|
||||
$this->ret = $this->callMethod('getWebhookInfo', [], false);
|
||||
return $this->ret;
|
||||
}
|
||||
public function setWebhook($newurl)
|
||||
{
|
||||
$this->ret = $this->callMethod('setWebhook', [
|
||||
'url' => $newurl
|
||||
], false);
|
||||
return $this->ret;
|
||||
}
|
||||
public function sendMessage($chat_id, $text, $reply_to_message_id = NULL, $reply_markup = array(), $parse_mode = 'HTML', $disable_web_page_preview = false, $disable_notification = false)
|
||||
{
|
||||
if (isset($GLOBALS['statistics']['send_total']))
|
||||
$GLOBALS['statistics']['send_total']++;
|
||||
foreach (str_split($text, 4096) as $text_i => $text_d) {
|
||||
$tmp = $this->callMethod('sendMessage', [
|
||||
'chat_id' => $chat_id,
|
||||
|
||||
'text' => $text_d,
|
||||
'reply_to_message_id' => $reply_to_message_id,
|
||||
'parse_mode' => $parse_mode,
|
||||
'reply_markup' => $reply_markup,
|
||||
'disable_web_page_preview' => $disable_web_page_preview,
|
||||
'disable_notification' => $disable_notification
|
||||
]);
|
||||
if ($text_i == 0) $this->ret = $tmp;
|
||||
}
|
||||
return $this->ret['result']['message_id'];
|
||||
}
|
||||
public function editMessage($chat_id, $message_id, $text, $reply_markup = array(), $parse_mode = 'HTML')
|
||||
{
|
||||
$this->ret = $this->callMethod('editMessageText', [
|
||||
'chat_id' => $chat_id,
|
||||
'message_id' => $message_id,
|
||||
'text' => $text,
|
||||
'parse_mode' => $parse_mode,
|
||||
'reply_markup' => $reply_markup
|
||||
]);
|
||||
return isset($this->ret['result']['message_id'])?$this->ret['result']['message_id']:0;
|
||||
}
|
||||
public function deleteMessage($chat_id, $message_id)
|
||||
{
|
||||
$this->ret = $this->callMethod('deleteMessage', get_defined_vars());
|
||||
return $this->ret;
|
||||
}
|
||||
public function kickMember($chat_id, $user_id, $until_date = NULL)
|
||||
{
|
||||
$this->ret = $this->callMethod('kickChatMember', [
|
||||
'chat_id' => $chat_id,
|
||||
'user_id' => $user_id,
|
||||
'until_date' => $until_date
|
||||
]);
|
||||
return $this->ret;
|
||||
}
|
||||
|
||||
//键盘按钮 KeyboardButton $chat_id sender_chat_id
|
||||
public function KeyboardButton($chat_id, $text, $Keyboard = array(), $message_id = null, $message_thread_id = null)
|
||||
{
|
||||
return $this->sendthreadMessage($chat_id, $text, $message_id, $message_thread_id, $Keyboard);
|
||||
}
|
||||
|
||||
|
||||
public function sendthreadMessage($chat_id, $text, $reply_to_message_id = NULL, $message_thread_id = NULL, $reply_markup = array(), $parse_mode = 'HTML', $disable_web_page_preview = false, $disable_notification = false)
|
||||
{
|
||||
|
||||
if (isset($GLOBALS['statistics']['send_total']))
|
||||
$GLOBALS['statistics']['send_total']++;
|
||||
foreach (str_split($text, 4096) as $text_i => $text_d) {
|
||||
$tmp = $this->callMethod('sendMessage', [
|
||||
'chat_id' => $chat_id,
|
||||
'text' => $text_d,
|
||||
'message_thread_id' => $message_thread_id,
|
||||
'reply_to_message_id' => $reply_to_message_id,
|
||||
'parse_mode' => $parse_mode,
|
||||
'reply_markup' => $reply_markup,
|
||||
'disable_web_page_preview' => $disable_web_page_preview,
|
||||
'disable_notification' => $disable_notification
|
||||
]);
|
||||
if ($text_i == 0) $this->ret = $tmp;
|
||||
}
|
||||
|
||||
if ($this->ret['ok'] == false) {
|
||||
|
||||
if ($this->ret['description'] == "Bad Request: BUTTON_URL_INVALID") {
|
||||
//按钮设置错误导致异常
|
||||
$txt = $text . "\r\n" . "\r\n" . "由于按钮信息设置错误,异常,您可以点击按钮参考设置规则";
|
||||
$button = json_encode(array(
|
||||
'inline_keyboard' => array(
|
||||
array(array(
|
||||
'text' => '参考按钮设置',
|
||||
'callback_data' => 'xinshouxiuefrb '
|
||||
))
|
||||
|
||||
|
||||
)
|
||||
));
|
||||
$this->sendMessage($chat_id, $txt, null, $button, 'Markdown', true);
|
||||
}
|
||||
//按钮设置问题导致报错
|
||||
if (strpos($this->ret['description'], "keyboard button")) {
|
||||
//按钮设置错误导致异常
|
||||
$txt = $text . "\r\n" . "\r\n" . "由于按钮信息设置错误,异常,您可以点击按钮参考设置规则";
|
||||
$button = json_encode(array(
|
||||
'inline_keyboard' => array(
|
||||
array(array(
|
||||
'text' => '参考按钮设置',
|
||||
'callback_data' => 'xinshouxiuefrb '
|
||||
))
|
||||
|
||||
|
||||
)
|
||||
));
|
||||
$this->sendMessage($chat_id, $txt, null, $button, 'Markdown', true);
|
||||
} elseif (strpos($this->ret['description'], "Bad Request: have no rights to send a message")) {
|
||||
|
||||
$cuwucishu = Cache::get("cuwusishuo" . $chat_id);
|
||||
if ($cuwucishu > 100) {
|
||||
// $this->db->update('group', ['switch' => 0, 'botid' => $this->botid], ['group' => $chat_id]);
|
||||
|
||||
|
||||
Db::name("group")->where(['group' => $chat_id, 'botid' => $this->botid])->update(['switch' => 0]);
|
||||
|
||||
|
||||
$this->getgroupinfo($chat_id, $this->tokenbase, 1);
|
||||
} else {
|
||||
Cache::set("cuwusishuo" . $chat_id, $cuwucishu + 1, 36000);
|
||||
}
|
||||
} else {
|
||||
$txt = "本次请求出错了,错误日志如下" . "\r\n" . "检查下设置的地址是否正确或者是存在多余的空格" . "\r\n" . $this->ret['description'] . "\r\n" . "\r\n" . "实在解决不了 反馈 @kaihebug";
|
||||
if ($text == "查看群规") {
|
||||
$this->sendMessage($chat_id, $txt);
|
||||
}
|
||||
|
||||
// file_put_contents("tgsendmassttttt.txt", json_encode($this->ret).$text.$reply_markup.$chat_id.$parse_mode."\r\n", FILE_APPEND);
|
||||
|
||||
|
||||
|
||||
}
|
||||
if (isset($this->ret['parameters']['retry_after'])) {
|
||||
$retry_after = $this->ret['parameters']['retry_after'];
|
||||
Cache::set("retry_after" . $chat_id, 1, $retry_after);
|
||||
}
|
||||
}
|
||||
//下面还可以添加规则
|
||||
if (isset($this->ret['result']['message_id'])) {
|
||||
return $this->ret['result']['message_id'];
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
//return $this->ret['result']['message_id'];
|
||||
}
|
||||
//强制回复 forcereply
|
||||
public function forcereply($chat_id, $text, $message_id = null, $message_thread_id = null)
|
||||
{
|
||||
$buttonsc = json_encode(
|
||||
array(
|
||||
'force_reply' => true,
|
||||
'input_field_placeholder' => $text,
|
||||
'selective' => true,
|
||||
)
|
||||
);
|
||||
return $this->sendthreadMessage($chat_id, $text, $message_id, $message_thread_id, $buttonsc);
|
||||
}
|
||||
|
||||
public function sendPhoto($chat_id, $photo, $caption = '', $reply_to_message_id = NULL, $reply_markup = array(), $parse_mode = 'HTML')
|
||||
{
|
||||
if (is_array($photo)) {
|
||||
return $this->sendMediaGroup($chat_id, array_map(function ($p) use ($caption, $parse_mode) {
|
||||
return [
|
||||
'type' => 'photo',
|
||||
'media' => $p,
|
||||
'caption' => $caption,
|
||||
'parse_mode' => $parse_mode
|
||||
];
|
||||
}, $photo), $reply_to_message_id);
|
||||
}
|
||||
|
||||
if (isset($GLOBALS['statistics']['send_total']))
|
||||
$GLOBALS['statistics']['send_total']++;
|
||||
$this->ret = $this->callMethod('sendPhoto', [
|
||||
'chat_id' => $chat_id,
|
||||
'photo' => $photo,
|
||||
'caption' => $caption,
|
||||
'parse_mode' => $parse_mode,
|
||||
'reply_to_message_id' => $reply_to_message_id,
|
||||
'reply_markup' => $reply_markup
|
||||
]);
|
||||
return isset($this->ret['result']['message_id'])?$this->ret['result']['message_id']:0;;
|
||||
}
|
||||
public function sendDocumentphoto($chat_id, $document, $caption = '', $reply_to_message_id = NULL, $reply_markup = array(), $parse_mode = 'HTML')
|
||||
{
|
||||
|
||||
$url = 'https://api.telegram.org/bot' . $this->token . '/sendPhoto';
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($ch, CURLOPT_POST, 1);
|
||||
|
||||
$finfo = finfo_file(finfo_open(FILEINFO_MIME_TYPE), $document);
|
||||
$cFile = new \CURLFile($document, $finfo);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->http_build_query_develop([
|
||||
'chat_id' => $chat_id,
|
||||
'photo' => $cFile,
|
||||
'caption' => $caption,
|
||||
'parse_mode' => $parse_mode,
|
||||
'reply_to_message_id' => $reply_to_message_id,
|
||||
'reply_markup' => $reply_markup
|
||||
]));
|
||||
$result = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
$this->ret = json_decode($result, 1);
|
||||
$message_id=isset($this->ret['result']['message_id'])?$this->ret['result']['message_id']:"";
|
||||
if(!empty($message_id)){
|
||||
unlink($document);
|
||||
}
|
||||
//var_dump($this->ret);
|
||||
return $message_id;
|
||||
}
|
||||
public function sendMediaGroup($chat_id, $media, $reply_to_message_id = NULL)
|
||||
{
|
||||
if (isset($GLOBALS['statistics']['send_total']))
|
||||
$GLOBALS['statistics']['send_total']++;
|
||||
$this->ret = $this->callMethod('sendMediaGroup', [
|
||||
'chat_id' => $chat_id,
|
||||
'media' => json_encode($media),
|
||||
'reply_to_message_id' => $reply_to_message_id
|
||||
]);
|
||||
return array_map(function ($m) {
|
||||
return $m['message_id'];
|
||||
}, $this->ret['result']);
|
||||
}
|
||||
public function sendAudio($chat_id, $audio, $caption = '', $reply_to_message_id = NULL, $reply_markup = array(), $parse_mode = 'HTML', $duration = '', $performer = NULL, $title = NULL, $thumb = '', $disable_notification = false)
|
||||
{
|
||||
if (isset($GLOBALS['statistics']['send_total']))
|
||||
$GLOBALS['statistics']['send_total']++;
|
||||
$this->ret = $this->callMethod('sendAudio', get_defined_vars());
|
||||
return $this->ret['result']['message_id'];
|
||||
}
|
||||
public function sendDocument($chat_id, $document, $caption = '', $reply_to_message_id = NULL, $reply_markup = array(), $parse_mode = 'HTML', $thumb = '', $disable_notification = false)
|
||||
{
|
||||
if (isset($GLOBALS['statistics']['send_total']))
|
||||
$GLOBALS['statistics']['send_total']++;
|
||||
$this->ret = $this->callMethod('sendDocument', get_defined_vars());
|
||||
return $this->ret['result']['message_id'];
|
||||
}
|
||||
public function sendVideo($chat_id, $video, $duration = '', $width = '', $height = '', $thumb = '', $caption = NULL, $parse_mode = 'HTML', $supports_streaming = '', $disable_notification = false, $reply_to_message_id = '', $reply_markup = '')
|
||||
{
|
||||
if (isset($GLOBALS['statistics']['send_total']))
|
||||
$GLOBALS['statistics']['send_total']++;
|
||||
$this->ret = $this->callMethod('sendVideo', get_defined_vars());
|
||||
return $this->ret['result']['message_id'];
|
||||
}
|
||||
public function sendAnimation($chat_id, $animation, $duration = NULL, $width = NULL, $height = NULL, $thumb = NULL, $caption = '', $parse_mode = 'HTML', $disable_notification = NULL, $reply_to_message_id = NULL, $reply_markup = array())
|
||||
{
|
||||
if (isset($GLOBALS['statistics']['send_total']))
|
||||
$GLOBALS['statistics']['send_total']++;
|
||||
$this->ret = $this->callMethod('sendAnimation', get_defined_vars());
|
||||
return $this->ret['result']['message_id'];
|
||||
}
|
||||
public function getBusinessConnection($business_connection_id)
|
||||
{
|
||||
$this->ret = $this->callMethod('getBusinessConnection', get_defined_vars());
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function sendVoice($chat_id, $voice, $caption = NULL, $parse_mode = 'HTML', $duration = '', $disable_notification = false, $reply_to_message_id = '', $reply_markup = '')
|
||||
{
|
||||
if (isset($GLOBALS['statistics']['send_total']))
|
||||
$GLOBALS['statistics']['send_total']++;
|
||||
$this->ret = $this->callMethod('sendVoice', get_defined_vars());
|
||||
return $this->ret['result']['message_id'];
|
||||
}
|
||||
public function getUserProfilePhotos($user_id, $offset = '', $limit = '')
|
||||
{
|
||||
$this->ret = $this->callMethod('getUserProfilePhotos', get_defined_vars());
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function unbanChatMember($chat_id, $user_id)
|
||||
{
|
||||
$this->ret = $this->callMethod('unbanChatMember', get_defined_vars());
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function restrictChatMember($chat_id, $user_id, $permissions, $until_date = NULL)
|
||||
{
|
||||
$this->ret = $this->callMethod('restrictChatMember', get_defined_vars());
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function promoteChatMember($chat_id, $user_id, $can_change_info = NULL, $can_post_messages = NULL, $can_edit_messages = NULL, $can_delete_messages = NULL, $can_invite_users = NULL, $can_restrict_members = NULL, $can_pin_messages = NULL, $can_promote_members = NULL)
|
||||
{
|
||||
$this->ret = $this->callMethod('promoteChatMember', get_defined_vars());
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function setChatPermissions($chat_id, $permissions)
|
||||
{
|
||||
$this->ret = $this->callMethod('setChatPermissions', get_defined_vars());
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function exportChatInviteLink($chat_id)
|
||||
{
|
||||
$this->ret = $this->callMethod('exportChatInviteLink', get_defined_vars());
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function setChatPhoto($chat_id, $photo)
|
||||
{
|
||||
$this->ret = $this->callMethod('setChatPhoto', get_defined_vars());
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function deleteChatPhoto($chat_id)
|
||||
{
|
||||
$this->ret = $this->callMethod('deleteChatPhoto', get_defined_vars());
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function setChatTitle($chat_id, $title)
|
||||
{
|
||||
$this->ret = $this->callMethod('setChatTitle', get_defined_vars());
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function setChatDescription($chat_id, $description = NULL)
|
||||
{
|
||||
$this->ret = $this->callMethod('setChatDescription', get_defined_vars());
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function pinChatMessage($chat_id, $message_id, $disable_notification = false)
|
||||
{
|
||||
$this->ret = $this->callMethod('pinChatMessage', get_defined_vars());
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function unpinChatMessage($chat_id)
|
||||
{
|
||||
$this->ret = $this->callMethod('unpinChatMessage', get_defined_vars());
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function leaveChat($chat_id)
|
||||
{
|
||||
$this->ret = $this->callMethod('leaveChat', get_defined_vars());
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function getChat($chat_id)
|
||||
{
|
||||
$this->ret = $this->callMethod('getChat', get_defined_vars());
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function getChatMembersCount($chat_id)
|
||||
{
|
||||
$this->ret = $this->callMethod('getChatMembersCount', get_defined_vars());
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function getChatMember($chat_id, $user_id)
|
||||
{
|
||||
$this->ret = $this->callMethod('getChatMember', get_defined_vars());
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function editMessageText($chat_id = '', $message_id = '', $inline_message_id = NULL, $text, $parse_mode = 'HTML', $disable_web_page_preview = '', $reply_markup = '')
|
||||
{
|
||||
$this->ret = $this->callMethod('editMessageText', get_defined_vars());
|
||||
return $this->ret['result']['message_id'];
|
||||
}
|
||||
public function editMessageCaption($chat_id = '', $message_id = '', $inline_message_id = NULL, $caption = NULL, $parse_mode = 'HTML', $reply_markup = '')
|
||||
{
|
||||
$this->ret = $this->callMethod('editMessageCaption', get_defined_vars());
|
||||
return $this->ret['result']['message_id'];
|
||||
}
|
||||
public function editMessageMedia($chat_id = '', $message_id = '', $inline_message_id = NULL, $media, $reply_markup = '')
|
||||
{
|
||||
$this->ret = $this->callMethod('editMessageMedia', get_defined_vars());
|
||||
return $this->ret['result']['message_id'];
|
||||
}
|
||||
public function editMessageReplyMarkup($chat_id = '', $message_id = '', $inline_message_id = NULL, $reply_markup = '')
|
||||
{
|
||||
$this->ret = $this->callMethod('editMessageReplyMarkup', get_defined_vars());
|
||||
return $this->ret['result']['message_id'];
|
||||
}
|
||||
public function sendSticker($chat_id, $sticker, $reply_to_message_id = NULL, $reply_markup = array(), $disable_notification = false)
|
||||
{
|
||||
if (isset($GLOBALS['statistics']['send_total']))
|
||||
$GLOBALS['statistics']['send_total']++;
|
||||
$this->ret = $this->callMethod('sendSticker', get_defined_vars());
|
||||
return $this->ret['result']['message_id'];
|
||||
}
|
||||
public function sendGame($chat_id, $game_name, $reply_to_message_id = NULL, $reply_markup = array())
|
||||
{
|
||||
if (isset($GLOBALS['statistics']['send_total']))
|
||||
$GLOBALS['statistics']['send_total']++;
|
||||
$this->ret = $this->callMethod('sendGame', [
|
||||
'chat_id' => $chat_id,
|
||||
'game_short_name' => $game_name,
|
||||
'reply_to_message_id' => $reply_to_message_id,
|
||||
'reply_markup' => $reply_markup
|
||||
]);
|
||||
return $this->ret['result']['message_id'];
|
||||
}
|
||||
public function setGameScore($user_id, $score, $force = false, $disable_edit_message = false, $chat_id = NULL, $message_id = NULL, $inline_id = NULL)
|
||||
{
|
||||
$this->ret = $this->callMethod('setGameScore', [
|
||||
'user_id' => $user_id,
|
||||
'score' => $score,
|
||||
'force' => $force,
|
||||
'disable_edit_message' => $disable_edit_message,
|
||||
'chat_id' => $chat_id,
|
||||
'message_id' => $message_id,
|
||||
'inline_message_id' => $inline_id
|
||||
]);
|
||||
return $this->ret['result']['message_id'];
|
||||
}
|
||||
public function forwardMessage($chat_id, $from_chat_id, $message_id, $disable_notification = false)
|
||||
{
|
||||
if (isset($GLOBALS['statistics']['send_total']))
|
||||
$GLOBALS['statistics']['send_total']++;
|
||||
$this->ret = $this->callMethod('forwardMessage', get_defined_vars());
|
||||
return $this->ret['result']['message_id'];
|
||||
}
|
||||
public function answerCallback($callback_id, $text = '', $show_alert = false, $url = '', $cache_time = 0)
|
||||
{
|
||||
if (isset($GLOBALS['statistics']['send_total']))
|
||||
$GLOBALS['statistics']['send_total']++;
|
||||
$this->ret = $this->callMethod('answerCallbackQuery', [
|
||||
'callback_query_id' => $callback_id,
|
||||
'text' => $text,
|
||||
'show_alert' => $show_alert,
|
||||
'url' => $url,
|
||||
'cache_time' => $cache_time
|
||||
]);
|
||||
return $this->ret;
|
||||
}
|
||||
public function sendInlineQuery($results)
|
||||
{
|
||||
self::$inlineResults = array_merge(self::$inlineResults, $results);
|
||||
}
|
||||
public function sendInline($inline_id, $cache_time = 600, $offset = '', $switch_pm_parameter = '')
|
||||
{
|
||||
$this->ret = $this->callMethod('answerInlineQuery', [
|
||||
'inline_query_id' => $inline_id,
|
||||
'results' => json_encode(self::$inlineResults),
|
||||
'cache_time' => $cache_time,
|
||||
'next_offset' => $offset,
|
||||
'switch_pm_parameter' => $switch_pm_parameter
|
||||
]);
|
||||
return $this->ret;
|
||||
}
|
||||
public function sendChatAction($chat_id, $action)
|
||||
{
|
||||
$this->ret = $this->callMethod('sendChatAction', [
|
||||
'chat_id' => $chat_id,
|
||||
'action' => $action
|
||||
]);
|
||||
return $this->ret;
|
||||
}
|
||||
public function getFile($file_id)
|
||||
{
|
||||
$this->ret = $this->callMethod('getFile', [
|
||||
'file_id' => $file_id,
|
||||
]);
|
||||
if ($this->ret['ok']) {
|
||||
$fileUrl = 'https://api.telegram.org/file/bot' . $this->token . '/' . $this->ret['result']['file_path'];
|
||||
$this->ret['result']['down_url'] = $fileUrl;
|
||||
}
|
||||
return $this->ret;
|
||||
}
|
||||
public function getInlineId()
|
||||
{
|
||||
return hash('sha256', uniqid(mt_rand(), true));
|
||||
}
|
||||
public function getChatAdmin($chat_id)
|
||||
{
|
||||
$this->ret = $this->callMethod('getChatAdministrators', [
|
||||
'chat_id' => $chat_id
|
||||
]);
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function getMe()
|
||||
{
|
||||
$this->ret = $this->callMethod('getMe', []);
|
||||
return $this->ret;
|
||||
}
|
||||
public function getStickerSet($name)
|
||||
{
|
||||
$this->ret = $this->callMethod('getStickerSet', [
|
||||
'name' => $name
|
||||
]);
|
||||
return $this->ret['result'];
|
||||
}
|
||||
public function isAdmin($chat_id, $user_id)
|
||||
{
|
||||
$ret = false;
|
||||
$adminList = $this->getChatAdmin($chat_id);
|
||||
foreach ($adminList as $adminList_d) {
|
||||
if ($adminList_d['user']['id'] == $user_id) {
|
||||
$ret = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
public function atById($userid, $username)
|
||||
{
|
||||
return '<a href="tg://user?id=' . $userid . '">@' . $username . '</a>';
|
||||
}
|
||||
public function getMaster()
|
||||
{
|
||||
return MASTER;
|
||||
}
|
||||
public function getBotName()
|
||||
{
|
||||
return BOTNAME;
|
||||
}
|
||||
public function getReturn()
|
||||
{
|
||||
return $this->ret;
|
||||
}
|
||||
public function error()
|
||||
{
|
||||
$this->callMethod('sendMessage');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user