mirror of https://github.com/dnomd343/tgbot
Dnomd343
3 years ago
5 changed files with 91 additions and 68 deletions
@ -1,19 +0,0 @@ |
|||||
<?php |
|
||||
|
|
||||
function loadEnv($filename) { // 读取环境变量文件 |
|
||||
$file = fopen($filename, 'r'); |
|
||||
$data = array(); |
|
||||
while (!feof($file)) { // 逐行读入文件 |
|
||||
$raw = trim(fgets($file)); |
|
||||
if ($raw == '') { continue; } // 跳过空行 |
|
||||
if (substr($raw, 0, 1) === '#') { continue; } // 跳过注释 |
|
||||
$record = explode('=', $raw); |
|
||||
if (count($record) === 2) { |
|
||||
$data[$record[0]] = $record[1]; // 合法记录 |
|
||||
} |
|
||||
} |
|
||||
fclose($file); |
|
||||
return $data; |
|
||||
} |
|
||||
|
|
||||
?> |
|
@ -0,0 +1,63 @@ |
|||||
|
<?php |
||||
|
|
||||
|
function initBot($webhook) { // 初始化机器人 |
||||
|
$webhook = json_decode($webhook, true); |
||||
|
$isCallback = isset($webhook['callback_query']) ? true : false; // 是否为回调请求 |
||||
|
if ($isCallback) { // 回调请求模式 |
||||
|
$message = $webhook['callback_query']['message']; |
||||
|
$messageText = $webhook['callback_query']['data']; |
||||
|
$messageFrom = $webhook['callback_query']['from']; |
||||
|
} else { // 直接请求模式 |
||||
|
$message = $webhook['message']; |
||||
|
$messageText = $webhook['message']['text']; |
||||
|
$messageFrom = $webhook['message']['from']; |
||||
|
} |
||||
|
return array( |
||||
|
'myInfo' => getMyself($GLOBALS['env']['BOT_TOKEN']), // bot信息 |
||||
|
'isGroup' => ($message['chat']['type'] === 'group') ? true : false, // 是否为群组 |
||||
|
'isCallback' => $isCallback, // 是否为回调请求 |
||||
|
'messageText' => $messageText, // 请求/回调 文本内容 |
||||
|
'messageId' => $message['message_id'], // 请求/回调 消息ID |
||||
|
'chatId' => $message['chat']['id'], // 会话ID |
||||
|
'userId' => $messageFrom['id'], // 请求者用户ID |
||||
|
'userName' => $messageFrom['first_name'], // 请求者名字 |
||||
|
'userAccount' => $messageFrom['username'], // 请求者用户名 |
||||
|
'userLanguage' => $messageFrom['language_code'] // 请求者语言 |
||||
|
); |
||||
|
} |
||||
|
|
||||
|
function getMyself($token) { // 获取bot信息 |
||||
|
$redis = new RedisCache('me'); |
||||
|
$info = $redis->getData('info'); // 查询缓存数据 |
||||
|
if (!$info) { // 缓存未命中 |
||||
|
$url = 'https://api.telegram.org/bot' . $token . '/getMe'; // API查询 |
||||
|
$info = json_decode(file_get_contents($url), true)['result']; |
||||
|
$info = array( |
||||
|
'id' => $info['id'], |
||||
|
'name' => $info['first_name'], |
||||
|
'account' => $info['username'] |
||||
|
); |
||||
|
$redis->setData('info', json_encode($info), 2 * 3600); // 缓存2小时 |
||||
|
} else { // 缓存命中 |
||||
|
$info = json_decode($info, true); // 使用缓存数据 |
||||
|
} |
||||
|
return $info; |
||||
|
} |
||||
|
|
||||
|
function loadEnv($filename) { // 读取环境变量文件 |
||||
|
$file = fopen($filename, 'r'); |
||||
|
$data = array(); |
||||
|
while (!feof($file)) { // 逐行读入文件 |
||||
|
$raw = trim(fgets($file)); |
||||
|
if ($raw == '') { continue; } // 跳过空行 |
||||
|
if (substr($raw, 0, 1) === '#') { continue; } // 跳过注释 |
||||
|
$record = explode('=', $raw); |
||||
|
if (count($record) === 2) { |
||||
|
$data[trim($record[0])] = trim($record[1]); // 合法记录 |
||||
|
} |
||||
|
} |
||||
|
fclose($file); |
||||
|
return $data; |
||||
|
} |
||||
|
|
||||
|
?> |
Loading…
Reference in new issue