Я хочу упомянуть пользователей, даже тех, которыене иметь имя пользователя.
Если пользователь установил имя пользователя, я возвращаюсь
Hi @username
как ответ, но если у пользователя его нет, я не могу этого сделать.
Я пытался использовать уникальный идентификатор пользователя, например,
@5642166
но это не сработало.
Как я могу этого достичь?
Прежде чем дать вам ответ, я действительно предлагаю вам использовать имя атрибут пользователя. Имя пользователя не требуется, если у вас есть учетная запись Telegram, но вы должны ввести имя.
Вот пример кода того, как я получил имя атрибут пользователя:
$rawContent = file_get_contents("php://input");
$rawContentArray = json_decode($rawContent, true);
foreach ($rawContentArray as $key => $value) {
if($key === "message"){
foreach ($value as $messagekey => $messagevalue) {
if($messagekey === "chat"){
foreach ($messagevalue as $chatkey => $chatvalue) {
if($chatkey === "first_name"){
$first_name = $chatvalue;
}
}
}
}
}
}
Если вы хотите получить имя пользователя, вы можете сделать то же самое, просто замените имя с имя пользователя и добавьте простую проверку после того, как вы дадите $ user_name ценность:
if($user_name !== ''){
$user_name = "@undefined"}
Проблема здесь в том, что вы должны дать пользователю заполнитель или общее имя пользователя, что довольно глупо, когда вы думаете об этом. Вы даете кому-то, кто использует ваш бот имя. Зачем это делать? Но если ты этого хочешь, замени мой «@Undefined» с вашим заполнителем.
Других решений пока нет …