2016-07-12 9 views

Antwort

0

Sie wissen nicht, welche Toolkit oder Bibliothek Sie Ihren Bot zu programmieren verwenden, aber nehmen wir an, dass Sie diese Bibliothek verwenden:

https://github.com/akalongman/php-telegram-bot/

In diesem Fall gibt es einen eingebauten Befehl, das tut genau das, was Sie wollen:

https://github.com/akalongman/php-telegram-bot/blob/master/src/Commands/SystemCommands/NewchatmemberCommand.php

Es ist süchtig neue Chat Mitglieder Veranstaltungen. Wenn der Bot sich anmeldet, wird es eine "Hi there" Nachricht geben. Wenn ein anderer Benutzer dem Chat beitritt, wird ein "Hi $ membername" angezeigt.

Sie Informationen zu einem Mitglied einer Chat bekommen können die getChatMember Methode: https://core.telegram.org/bots/api#getchatmember

In PHP-Telegramm-Bot-Bibliothek, die Bot speichert IDs der Mitglieder, die in einem Chat beigetreten sind (ich denke, dass seit der bot eingegeben) in der user_chat Tabelle (wieder unter der Annahme, dass Sie eine MySQL-Datenbank verwenden, um Informationen zu speichern, da die pHP-Telegramm-bietet Bibliothek schlägt)

+0

Funktioniert es mit Kanälen oder nur mit Gruppen? –

0
  1. einen Roboter in Telegramm erstellen
  2. erlauben Roboter Gruppen über Botfather
  3. beizutreten
  4. Roboter Gruppe/Kanal hinzufügen und diese Adresse Administrator
  5. Nutzung fördern: https://api.telegram.org/bot<botapitoken>/getChatMember?chat_id=<@channelusername>&user_id=<user_id>
+0

Telegram Bot API Webseite: Verwenden Sie diese Methode, um Informationen über ein Mitglied eines Chats zu erhalten. Gibt bei Erfolg ** ein ** 'ChatMember'-Objekt zurück. Auf der anderen Seite enthält ein 'ChatMember'-Objekt Informationen über ** ein ** Mitglied eines Chats. Es scheint also nicht zu funktionieren. – Mowji

+0

@Mowji ist ein Offline-Weg zu khow Benutzer ist der Gruppe beigetreten oder nicht. –

3

Ziemlich enttäuscht über die aktuellen Antworten, also werde ich eine aktualisierte verlassen (Stand: Februar 2018) Antwort, die erklärt, wie dies zu tun mit der Telegram API selbst, sowie mit dem Framework, das ich verwende, Telegraf for Node.

Die Telegram API ist sowohl sehr leistungsfähig, als auch ziemlich einfach, soweit APIs gehen. Wenn Sie die Abfragemethode verwenden, um Updates zu erhalten, und nicht websockets, die ein ganz anderes Problem sind, ist es sehr einfach zu überprüfen, ob jemand zu einer Gruppe oder einem Kanal hinzugefügt wurde.

Die API-Methode getUpdates gibt ein Array mit Update Objekten zurück, die alle möglichen Informationen enthalten, einschließlich gesendete Nachrichten, Inline-Abfragen und neue Chat-Mitglieder. Um neue Chat-Mitglieder zu bekommen, müssen Sie einfach auf update.message.new_chat_members zugreifen, die eine Reihe neuer Benutzer enthalten wird. Als Referenz können Sie in der API-Dokumentation here nachsehen.

Um die Update-Objekte im Browser oder mit curl zu holen, müssen Sie lediglich eine GET- oder POST-Anfrage an https://api.telegram.org/botYOUR-BOT-TOKEN/getUpdates senden. Dann suchen Sie einfach nach messages->new_chat_members. Wenn Sie das Telegraf-Bot-Framework mit NodeJs verwenden, können Sie die Methode bot.on mit dem Ereignis new_chat_members verwenden.

Beispiel:

bot.on('new_chat_members', (ctx) => console.log(ctx.message.new_chat_members)) 

Ich weiß, das vor einiger Zeit gefragt wurde, aber ich hoffe, dass diese anderen Menschen hilft, zu suchen.

+0

die beste Antwort, danke Watzon – poerror

Verwandte Themen