2015-10-23 51 views
0

我创建了一个机器人,并且我想用我的机器人向我的客户发送文件(文档),使用以下代码发送文档后,标题将是我自己设备上文件的完整路径(我的电脑),我怎样才能改变标题文件名?这甚至有可能吗?电报sendDocument api,更改标题

发送代码:

protected function perform($method, $params) { 
     $url = new Url(TELEGRAM_API_URL . $this->bot->tokken . "/" . $method); 
     $fields = []; 
     foreach($params as $param => $val) 
      if($val != NULL && !cnull::is($val) && substr($param, 0, 1) != '_') 
       $fields[$param] = $val; 
# 
      $ch = curl_init(); 
      curl_setopt($ch, CURLOPT_URL, $url->getUrl()); 
      curl_setopt($ch, CURLOPT_POST, count($fields)); 
      curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); 
      curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type:multipart/form-data']); 
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 

      curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 

      $out = curl_exec($ch); 
      curl_close($ch); 
# 
      $content = json_decode($out); 
      return $content; 
} 
public function sendDocument($chat_id,$_document,$_is_file_id=false,$reply_to_message_id = NULL, $reply_markup = NULL) { 
     if($_is_file_id) 
      $document = $_document; 
     else 
      $document = new CURLFile(realpath($_document)); 
     return self::perform(__FUNCTION__, get_defined_vars()); 
} 

// ...... 
    $tg->sendDocument(USER_CHAT_ID,"filename.mp4"); 

这是结果: enter image description here

回答

0

我用->setPostFilename()CURLFile 这里找到一个解决方案是:

改变此方法:

public function sendDocument($chat_id,$_document,$_is_file_id=false,$reply_to_message_id = NULL, $reply_markup = NULL) { 
     if($_is_file_id) 
      $document = $_document; 
     else 
      $document = new CURLFile(realpath($_document)); 
     return self::perform(__FUNCTION__, get_defined_vars()); 
} 

到:

public function sendDocument($chat_id,$_document,$_title=null,$_is_file_id=false,$reply_to_message_id = NULL, $reply_markup = NULL) { 
     if($_is_file_id) 
      $document = $_document; 
     else{ 
      $document = new CURLFile(realpath($_document)); 
      $document->setPostFilename($_title); 
     } 
     return self::perform(__FUNCTION__, get_defined_vars()); 
} 

// ...... 
    $tg->sendDocument(USER_CHAT_ID,"filename.mp4","title of file");