2016-10-14 32 views
9

Tôi đang tạo một bot điện tín và sử dụng phương thức sendMessage để gửi tin nhắn. thật dễ dàng để đề cập đến người dùng sử dụng @username, Nhưng làm cách nào để đề cập đến người dùng khi họ không có tên người dùng?bot Telegram: Cách đề cập đến người dùng bằng id của nó (không phải tên người dùng của nó)

Nếu sử dụng ứng dụng/web điện tín, chúng tôi có thể đề cập đến người dùng theo số @integer_id (name) và ứng dụng/web điện tín sẽ chuyển đổi thành văn bản có thể nhấp. integer_id sẽ được tạo tự động khi chúng tôi chọn người dùng, sau khi nhập @.

nền khác: Tôi đang cố gắng sử dụng forceReply và tôi muốn nhắm mục tiêu người dùng, nếu họ có tên người dùng, tôi có thể dễ dàng nhắm mục tiêu đến họ bằng cách đề cập đến họ trên văn bản theo phương pháp sendMessage.

bot tôi đang tạo là "bài kiểm tra" như bot. trong đó mỗi người chơi cần thay phiên nhau và bot sẽ gửi cho họ câu hỏi, mỗi thông điệp từ bot sẽ nhắm mục tiêu người chơi khác nhau.

LƯU Ý: Tôi không vô hiệu hóa Privacy Mode, tôi không muốn máy đánh bom bằng điện tín với máy chủ mà tôi không cần. nó đã quá tải máy chủ khó chịu rẻ của tôi. vì vậy, vô hiệu hóa nó không phải là một lựa chọn.

Tôi mở cho giải pháp khác, nơi bot có thể nghe người chơi được chọn.

cảm ơn.

CẬP NHẬT 21/10: Tôi đã nói chuyện với BotSupport cho điện tín, họ nói, hiện tại Bots không thể đề cập đến người dùng mà không có tên người dùng.

vì vậy trong trường hợp của mình, tôi vẫn tiếp tục sử dụng forceReply và cũng cung cấp một thông điệp ngắn cho người dùng không có tên người dùng để thiết lập để họ có thể nhận được lợi ích từ chức năng forceReply.

Trả lời

0

Bots có thể gắn thẻ người dùng theo ID của họ, họ chỉ không thể thực hiện việc này bằng API HTTP Bot chính thức.

Cập nhật: Không cần thiết nữa, vì Telegram đã thêm Hỗ trợ gốc cho việc này.

Nếu bạn đăng nhập vào tài khoản bot của bạn với MadelineProto (PHP), bạn có thể sử dụng 'liên kết' này đề cập đến một người nào đó bởi đó là ID với parse_mode thiết lập để Markdown

 

[Daniil Gentili](mention:@danogentili) 

+1

OP muốn biết làm thế nào để đề cập đến người dùng bằng ID người dùng của họ và đó là một số nguyên 32bit, không phải bằng tên người dùng mà bạn đề nghị – Reith

+0

@Reith có xem Tài liệu MadelineProto. Bạn có thể thay thế @username bằng một số. Ví dụ. '[Daniil Gentili] (đề cập: 123456789)' –

4

Theo official documentation có thể kể đến người dùng bởi id số của nó với đánh dấu:

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

Các vấn đề liên quan