Telegram Bot API: сервер не работает при использовании getUserProfilePhotos () - PullRequest
0 голосов
/ 17 декабря 2018

Context

Я использую telegraf.js для более чем 3-х ботов, которые отлично работают во многих группах.В настоящее время один из ботов должен запросить Display Picture пользователя, у которого нет изображения дисплея.

Он работает очень хорошо, как и ожидалось, но, к сожалению, бот выдает ошибку, и сервер отключается

Текущий код

// Request for display picture
const requestDP = async  (ctx, next) => {
  const { from, chat } = ctx.message;
  const { can_delete_messages:canDelete } = await deletePermision(ctx);

  let totalDPs = 1;
  totalDPs = await ctx.telegram.getUserProfilePhotos(ctx.message.from.id)
  .then((result) => result.total_count)
  .catch((err) => {
    console.log(err);
  });

  if (totalDPs != 0) return next();

  if ((chat.id === -1001341734527 || chat.id === -1001083711103 ) && canDelete) {
    await ctx.deleteMessage().then((response) => response, ({ response }) => response.ok);

    await ctx.replyWithMarkdown(`[${from.first_name||''} ${from.last_name||''}](tg://user?id=${from.id}), പ്രൊഫൈൽ ഫോട്ടോ ഇല്ലാത്തവർക്ക് ഗ്രൂപിൽ മെസേജ് അയക്കാൻ സാധ്യമല്ല`)
    .then(({ message_id }) => setTimeout(() => ctx.deleteMessage(message_id), 5 * 60 * 1000))
    .catch((err) => console.log("Error in prevencontacts: " + err));
  }
}

module.exports = requestDP;

Информация об ошибках (для ошибок)

let totalDPs = 1;
totalDPs = await ctx.telegram.getUserProfilePhotos(ctx.message.from.id)
.then((result) => result.total_count)
.catch((err) => {
  console.log(err);
});

Функции работают хорошо.Но, к сожалению, иногда они получают ошибку, и сервер отключается.Сообщение об ошибке 101

Error: 400: Bad Request: request for new profile photos has already been sent

Время от времени очень сложно обновить сервер: - (
Есть ли какое-либо решение для управления этой ошибкой?

...