GramJS

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