Php 电报API,获取发送方';谁的电话号码?

Php 电报API,获取发送方';谁的电话号码?,php,chat,bots,telegram,telegram-bot,Php,Chat,Bots,Telegram,Telegram Bot,我意识到不可能使用机器人来接收发送者的电话号码。 然而,我确实需要实现一个类似于bot的客户端,它可以响应任何发送消息的人。我在apache上使用PHP 它不是一个机器人,因为它不接受命令,而是响应任何拥有该电话号码的人发送的文本。因此,您将用户添加为联系人(使用电话号码),然后向其发送文本 我的目标是在收到发送者的电话号码时了解它,我在网上看到有一个对等ID,但如果可能的话,我找不到如何获取该电话号码 从github尝试此库 以及在私人聊天中创建“访问卡”按钮的代码: $keyboard =

我意识到不可能使用机器人来接收发送者的电话号码。
然而,我确实需要实现一个类似于bot的客户端,它可以响应任何发送消息的人。我在apache上使用PHP

它不是一个机器人,因为它不接受命令,而是响应任何拥有该电话号码的人发送的文本。因此,您将用户添加为联系人(使用电话号码),然后向其发送文本

我的目标是在收到发送者的电话号码时了解它,我在网上看到有一个对等ID,但如果可能的话,我找不到如何获取该电话号码

从github尝试此库

以及在私人聊天中创建“访问卡”按钮的代码:

$keyboard = array(
                   array(
                        array( 
                              'text'=>"Send your visit card",
                              'request_contact'=>true
                              )
                        )
                 ); //user button under keyboard.

$reply_markup = $telegram->replyKeyboardMarkup([ 'keyboard' => $auth_keyboard, 'resize_keyboard' => true, 'one_time_keyboard' => false ]);
$telegram->sendMessage([ 'chat_id' => $chat_id, 'text' => $reply, 'reply_markup' => $reply_markup ]);
以及用户按下按钮后从“访问卡”获取unic用户电话的代码

$user_phone = $result["message"]["contact"]["phone_number"];
if ($user_phone) {
        $reply = $user_phone;
        $telegram->sendMessage([ 'chat_id' => $chat_id, 'text' => $reply, 'reply_markup' => $reply_markup ]);
   }

最后我找到了如何获得电话号码。 我使用的是Laravel 8的软件包

下面的代码是发送按钮的命令,当用户按下按钮时,它会在用户点击“共享”后捕获用户的电话号码

PhoneNumberCommand.php

ControllerWebhook.php


这是我的工作!希望您也能实现。

您有用户ID吗?如果是这样,您可以查询,然后从中检索包含电话号码作为字符串的。我应该收到一条消息,收到后,检查消息的发件人。你指的是我提到的对等ID吗?这不是真的:“不可能使用Bot接收发件人的电话号码。”]你可以通过一个特殊的键检索用户电话号码,如果他/她单击它,他/她的电话号码将发送给Bot。我带着你的
电报机器人
关键词来到这里,但你的问题与此无关。请删除关键字friend。好吧,这个想法是为了识别任意发件人的电话号码。我希望@James Paterson的想法可以。@ted如果你说你只需要回复给你发信息的用户,你就不需要手机号码。\@vladimir is$auth\u keyboard=$keyboard?是打字错误吗?@inMILD请检查他最后一次露面,然后希望他能回复。
public function handle()
{        
    $response = $this->getUpdate();
    $chat_id = $response->getChat()->getId();

    $btn = Keyboard::button([
        'text' => 'Varify',
        'request_contact' => true,
    ]);

    $keyboard = Keyboard::make([
        'keyboard' => [[$btn]],
        'resize_keyboard' => true,
        'one_time_keyboard' => true
    ]);

    return $this->telegram->sendMessage([
        'chat_id' => $chat_id, 
        'text' => 'Please click on Verify and Share.',
        'reply_markup' => $keyboard
    ]);
}
public function commandHandlerWebHook()
{
    $updates = Telegram::commandsHandler(true);

    $chat_id = $updates->getChat()->getId();

    // Catch Phone Number
    $user_phone = array_key_exists('contact', $updates['message']) ? 
        $updates['message']['contact']['phone_number'] : null;
    $text = 'Phone number : ' . $user_phone;
    if($user_phone) return Telegram::sendMessage(['chat_id' => $chat_id, 'text' => $text]);

    return 'ok';
}