GramJS

⚠️ This project is archived and no longer maintained. Development continues in teleproto, an actively maintained fork. It's largely compatible with GramJS for most projects, migration means little more than swapping the package:
npm install teleproto
See the migration guide for details.

messages.RequestEncryption

Sends a request to start a secret chat to the user.

Example

const { Api, TelegramClient } = require("telegram");
const { StringSession } = require("telegram/sessions");

const session = new StringSession(""); // You should put your string session here
const client = new TelegramClient(session, apiId, apiHash, {});

(async function run() {
  await client.connect(); // This assumes you have already authenticated with .start()

  const result = await client.invoke(
    new Api.messages.RequestEncryption({
      userId: "username",
      randomId: 43,
      gA: Buffer.from("arbitrary data here"),
    })
  );
  console.log(result); // prints the result
})();
import { Api, TelegramClient } from "telegram";
import { StringSession } from "telegram/sessions";

const session = new StringSession(""); // You should put your string session here
const client = new TelegramClient(session, apiId, apiHash, {});

(async function run() {
  await client.connect(); // This assumes you have already authenticated with .start()

  const result: Api.EncryptedChat = await client.invoke(
    new Api.messages.RequestEncryption({
      userId: "username",
      randomId: 43,
      gA: Buffer.from("arbitrary data here"),
    })
  );
  console.log(result); // prints the result
})();

Parameters

NameTypeDescription
userIdInputUserUser ID
randomIdintUnique client request ID required to prevent resending. This also doubles as the chat ID.
gAbytesA = g ^ a mod p, see Wikipedia

Result

EncryptedChat

Possible errors

CodeTypeDescription
400DH_G_A_INVALIDg_a invalid.
400USER_ID_INVALIDThe provided user ID is invalid.

Can bots use this method?

No