Telegram bot 将用户添加到频道 代码

问题描述

我正在使用 laravel-notification-channels/telegram 我已经为我的用户实现了欢迎通知,我的机器人发送该消息没有问题,我实现的第二部分是添加这些用户(我发送了欢迎消息)进入我的频道。

PS: 我的机器人是我频道的管理员,有权添加用户

逻辑

  1. Telegram 用户可以注册(完成)
  2. 获取电报用户数据并发送欢迎信息(完成)
  3. 通过机器人将电报用户添加到我的频道。 (需要帮助)

代码

Note: 我的代码目前只够发送欢迎信息,与将用户添加到频道无关...

public $user;
public $telegram_id;

/**
 * Create a new notification instance.
 *
 * @return void
 */
public function __construct($user,$telegram_id)
{
    $this->user = $user;
    $this->telegram_id = $telegram_id;
}

public function toTelegram($notifiable)
{
  // first message to bot (to recognize the user)
  TelegramMessage::create()
    ->to('MY_BOT_ID');

  // then message the user from bot
  return TelegramFile::create()
    ->to($this->telegram_id) // registered user ID on telegram
    ->content("Hello");
  }

  // (NEXT) add user to channel
  //.....

有什么想法吗?

解决方法

我担心机器人 API 无法做到这一点,因为没有相应的 API 方法(请参阅 Telegram Bot API)。

但是,您可以向用户提供聊天的邀请链接,以便他们加入。您可以使用 exportChatInviteLink method 生成邀请链接,但这不能通过 laravel-notification-channels/telegram 完成。也许您可以通过 API 手动生成链接,将其添加到您的应用程序中,然后将链接发送给用户。

如果您真的希望将用户添加到聊天中,您可以使用 channels.inviteToChannel 上的 client API 方法。 MadelineProto 是一个 PHP Telegram 客户端库,can do that