Commit 14a30ac2 authored by Sergey Antonovich's avatar Sergey Antonovich 🇯🇵

Загрузить новый файл

parent e95ee0fb
# Телеграм Бот (Synergy) - Установка на Linux
* Создаем папку (Например: на рабочем столе с названием "tSynergy")
* Создаем файл js (Например: bot.js)
* В этой папке открываем терминал и пишем команды:
```bash
sudo -i
```
```bash
cd /home/{username}/Рабочий\ Стол/tSynergy
```
```bash
apt-get update
```
```bash
apt-get upgrade
```
```bash
apt-get install nodejs
```
```bash
apt-get install npm
```
```bash
npm init
```
* Нажимаем enter до конца. *если будет запрашивать название то введите что угодно*
* Теперь отредактируем файл `package.json`
```bash
nano package.json
```
* В строке "scripts" будет ниже строка "test" ее мы и будем менять. Должно получится так.
```json
"start": "nodemon bot.js"
В результате должно быть что-то похожее:
{
"name":"...",
"version":"1.0.0",
"description":"",
"main":"bot.js",
"scripts":{
"start":"nodemon bot.js"
},
"author":"",
"license":"ISC",
"dependencies":{
"nodemon":"^1.18.6"
}
}
```
* Дальше: устанавливаем библиотеки
```bash
npm i node-telegram-bot-api nodemon najax crypto fs
```
* Запускаем наш бот
```bash
npm run start
```
* Должно выйти нечто такое:
```bash
[nodemon] 1.18.6
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node bot.js`
[nodemon] clean exit - waiting for changes before restart
```
* Если это так то можно начать писать скрипт в файле `bot.js`. Добавьте код ниже чтобы начать работу с Телеграм Ботом.
```javascript
const TBOT = require('node-telegram-bot-api');
const bot = new TBOT(ACCESS_TOKEN,{polling: true});
const CONTAINER_HOST_NAME = 'http://site.arta.pro/Synergy/';
const CONTAINER_LOGIN = '1';
const CONTAINER_PASSWORD = '1';
function api(){
var _m = typeof arguments[0] === 'string' ? arguments[0] : typeof arguments[1] === 'string' ? arguments[1] : typeof arguments[2] === 'string' ? arguments[2] : '';
var _o = typeof arguments[0] === 'object' ? arguments[0] : typeof arguments[1] === 'object' ? arguments[1] : typeof arguments[2] === 'object' ? arguments[2] : {};
var _c = typeof arguments[0] === 'function' ? arguments[0] : typeof arguments[1] === 'function' ? arguments[1] : typeof arguments[2] === 'function' ? arguments[2] : false;
var log = function(q,err){
console.log('Request url',url);
console.log('Request status',q.status);
console.log('Request status text',q.statusText);
console.log('Request response', JSON.parse(""+q.responseText));
console.log('Request failed error', (err ? err.message : 'none'));
};
try{
var url = CONTAINER_HOST_NAME.replace(/\/Synergy\/?|\/rest\/api\/?/i,'') + '/Synergy/rest/api/' + _m.replace(/(.*rest\/api?\/)/,'');
return ajax({
url:url,
type:(!_o || !_o.hasOwnProperty('type')?'GET':_o.type),
async:(!_o || !_o.hasOwnProperty('async')?false:_o.async),
beforeSend: function(xhr){xhr.setRequestHeader('Authorization', 'Basic ' + Buffer((!_o || !_o.login || !_o.password ? CONTAINER_LOGIN + ':' + CONTAINER_PASSWORD : _o.login + ':' + _o.password)).toString('base64'));},
data:(!_o || !_o.hasOwnProperty('data') ? {} : _o.data),
dataType:(!_o || !_o.hasOwnProperty('dataType')?'json':_o.dataType)
}).then(function(response,state,query){
log(query);
if(_c) _c(response);
}).fail(function(response,state,query){
log(query);
if(_c) _c(response);
})[(_o && _o.hasOwnProperty('dataType') && _o.dataType == 'text' ? 'responseText' : 'responseJSON')];
}catch(err){
log({status:500,statusText:'internal server error',responseText:''},err);
return err.message;
}
}
/**
* Результат выполнения API в консоле
*/
console.log(api('person/auth'));
bot.onText(/\/start/, msg => {
console.log(msg,null,4);
});
```
* Если это не так то смотрите консольные ошибки и попытайся их устранить. (Такое не должно впринципе произойти)
## Как получить access_token?
* Запустите данный бот: @BotFather [Запустить](https://t.me/BotFather)
* Выполните команду: `/newbot`
* Бот запросит ввести название вашего нового бота.<br>Я указал `tSynergy_bot`.<br>Приставка `Bot` или `_bot` обязательна.
* Копируем наш токен после строки: Use this token to access the HTTP API
* Выполняем команду: `/mybots`
* Выбираем наш созданный бот и переходим в него по ссылке.
## Ссылки на различные библиотеки по Telegram API
Библиотека: [telegram-node-bot](https://github.com/naltox/telegram-node-bot)
Библиотека: [node-telegram-bot-api](https://github.com/yagop/node-telegram-bot-api)
Различные библиотеки под другие ЯП: [core.telegram.org](https://core.telegram.org/bots/samples)
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment