@mtproto/core
Telegram API (MTProto) client library for browser
- Actual. 108 layer in the API scheme
- Fast. Uses WebSocket to work with the network
- Easy. Cryptography is hidden. Just make requests to the API
- 2FA. Use the library's built-in function to calculate 2FA parameters
Install
yarn add @mtproto/core -E
Quick start
You need api_id and api_hash. If you do not have them yet, then get them according to the official instructions: creating your Telegram application.
const MTProto = require('@mtproto/core');
const api_id = 'YOU_API_ID';
const api_hash = 'YOU_API_HASH';
const mtproto = new MTProto({
api_id,
api_hash,
test: true,
});
const phone = '+9996621111';
const code = '22222';
mtproto
.call('auth.sendCode', {
phone_number: phone,
settings: {
_: 'codeSettings',
},
})
.then(result => {
mtproto
.call('auth.signIn', {
phone_code: code,
phone_number: phone,
phone_code_hash: result.phone_code_hash,
})
.then(result => {
console.log(`auth.signIn[result]:`, result);
})
.catch(error => {
if (error.error_message === 'SESSION_PASSWORD_NEEDED') {
}
});
});
2FA (Two-factor authentication)
const { getSRPParams } = require('@mtproto/core/src/utils');
const password = 'YOU_PASSWORD';
mtproto
.call('account.getPassword')
.then(async result => {
const { srp_id, current_algo, srp_B } = result;
const { salt1, salt2, g, p } = current_algo;
const { A, M1 } = await getSRPParams({
g,
p,
salt1,
salt2,
gB: srp_B,
password,
});
return mtproto.call('auth.checkPassword', {
password: {
_: 'inputCheckPasswordSRP',
srp_id,
A,
M1,
},
});
})
.then(result => {
console.log(`auth.checkPassword[result]:`, result);
});