getFile() 공개 정적인 메소드

For the moment, bots can download files of up to 20MB in size. The file can then be downloaded via the link https://api.telegram.org/file/bot/, where is taken from the response. It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by calling getFile again.
public static getFile ( array $data ) : ServerResponse
$data array
리턴 Longman\TelegramBot\Entities\ServerResponse
 public function execute()
 {
     $update = $this->getUpdate();
     $message = $this->getMessage();
     $user_id = $message->getFrom()->getId();
     $chat_id = $message->getChat()->getId();
     $message_id = $message->getMessageId();
     $text = $message->getText(true);
     //send chat action
     Request::sendChatAction(['chat_id' => $chat_id, 'action' => 'typing']);
     $caption = 'Your Id: ' . $message->getFrom()->getId();
     $caption .= "\n" . 'Name: ' . $message->getFrom()->getFirstName() . ' ' . $message->getFrom()->getLastName();
     $caption .= "\n" . 'Username: '******'user_id' => $user_id, 'limit' => $limit, 'offset' => $offset]);
     //Check if the request isOK
     if ($ServerResponse->isOk()) {
         $UserProfilePhoto = $ServerResponse->getResult();
         $totalcount = $UserProfilePhoto->getTotalCount();
     } else {
         $totalcount = 0;
     }
     $data = [];
     $data['chat_id'] = $chat_id;
     $data['reply_to_message_id'] = $message_id;
     if ($totalcount > 0) {
         $photos = $UserProfilePhoto->getPhotos();
         //I pick the latest photo with the hight definition
         $photo = $photos[0][2];
         $file_id = $photo->getFileId();
         $data['photo'] = $file_id;
         $data['caption'] = $caption;
         $result = Request::sendPhoto($data);
         //Download the image pictures
         //Download after send message response to speedup response
         $file_id = $photo->getFileId();
         $ServerResponse = Request::getFile(['file_id' => $file_id]);
         if ($ServerResponse->isOk()) {
             Request::downloadFile($ServerResponse->getResult());
         }
     } else {
         //No Photo just send text
         $data['text'] = $caption;
         $result = Request::sendMessage($data);
     }
     return $result;
 }
예제 #2
0
 /**
  * Command execute method
  *
  * @return mixed
  * @throws \Longman\TelegramBot\Exception\TelegramException
  */
 public function execute()
 {
     $message = $this->getMessage();
     $from = $message->getFrom();
     $user_id = $from->getId();
     $chat_id = $message->getChat()->getId();
     $message_id = $message->getMessageId();
     $data = ['chat_id' => $chat_id, 'reply_to_message_id' => $message_id];
     //Send chat action
     Request::sendChatAction(['chat_id' => $chat_id, 'action' => 'typing']);
     $caption = sprintf('Your Id: %d' . PHP_EOL . 'Name: %s %s' . PHP_EOL . 'Username: %s', $user_id, $from->getFirstName(), $from->getLastName(), $from->getUsername());
     //Fetch user profile photo
     $limit = 10;
     $offset = null;
     $response = Request::getUserProfilePhotos(['user_id' => $user_id, 'limit' => $limit, 'offset' => $offset]);
     if ($response->isOk()) {
         /** @var UserProfilePhotos $user_profile_photos */
         $user_profile_photos = $response->getResult();
         if ($user_profile_photos->getTotalCount() > 0) {
             $photos = $user_profile_photos->getPhotos();
             /** @var PhotoSize $photo */
             $photo = $photos[0][2];
             $file_id = $photo->getFileId();
             $data['photo'] = $file_id;
             $data['caption'] = $caption;
             $result = Request::sendPhoto($data);
             //Download the photo after send message response to speedup response
             $response2 = Request::getFile(['file_id' => $file_id]);
             if ($response2->isOk()) {
                 /** @var File $photo_file */
                 $photo_file = $response2->getResult();
                 Request::downloadFile($photo_file);
             }
             return $result;
         }
     }
     //No Photo just send text
     $data['text'] = $caption;
     return Request::sendMessage($data);
 }