2016-10-14 31 views
9

Tworzę telegramu bota i używając metody sendMessage do wysyłania wiadomości. łatwo jest wymienić użytkownika używającego @username, ale jak wspomnieć o użytkowniku, gdy nie ma on nazwy użytkownika?Telegram bot: Jak wspomnieć o użytkowniku za pomocą jego identyfikatora (nie jego nazwy użytkownika)

Jeśli korzystasz z aplikacji telegramu/strony internetowej, możemy wspomnieć o użytkowniku przez @integer_id (name), a aplikacja telegram/web zamieni go na klikalny tekst. integer_id zostanie wygenerowany automatycznie po wybraniu użytkownika po wpisaniu @.

innym tle: Próbuję użyć forceReply i chcę kierować użytkownika, jeśli mają one nazwę użytkownika, mogę je łatwo kierować, wymieniając je na tekst na sendMessage metody.

Bota, który tworzę, to "quiz" jak bot. gdzie każdy gracz musi skręcić, a bot wysyła mu pytanie, każde msg z bota będzie skierowane do innego gracza.

UWAGA: Nie wyłączam Privacy Mode, nie chcę telegramu bombardującego mój serwer za pomocą msg Nie potrzebuję. przeciążał mój tani, paskudny serwer. więc wyłączenie go nie jest opcją.

Jestem otwarty na inne rozwiązanie, w którym bot może słuchać wybranego gracza.

dzięki.

UPDATE 21/10: Rozmawiałem z BotSupport o telegram, powiedzieli, na razie roboty nie mogą wymieniać użytkownika bez nazwy użytkownika.

Tak więc w moim przypadku nadal używam forceReply, a także dawałem krótką wiadomość dla użytkownika, który nie ma nazwy użytkownika, aby ją skonfigurować, aby mogli skorzystać z funkcji forceReply.

Odpowiedz

0

Boty mogą oznaczać użytkowników za pomocą ich identyfikatora, po prostu nie mogą tego zrobić przy użyciu oficjalnego interfejsu API protokołu HTTP Bot.

Aktualizacja: Nie jest to konieczne, ponieważ Telegram dodał do tego obsługę natywną.

Jeśli zalogujesz się na swoje boty konto z MadelineProto (PHP), można użyć tego „link” wspomnieć kogoś swojego ID z parse_mode ustawiony Przecena

 

[Daniil Gentili](mention:@danogentili) 

+1

pO chce wiedzieć, jak wymienić użytkownikom ich identyfikatora użytkownika i jest to liczba całkowita 32bit, a nie nazwy użytkownika, który zasugerował – Reith

+0

@Reith Have spójrz na dokumentację MadelineProto. Możesz zastąpić @username numerem. Na przykład. '[Daniil Gentili] (wzmianka: 123456789)' –

4

Według official documentation możliwe jest, aby wspomnieć użytkownikowi przez jego numeryczny identyfikator ze znacznikami:

[inline mention of a user](tg://user?id=123456789)