Google App Script - Telegram Bot - setChatPhoto

时间:2018-02-17 01:46:20

标签: google-apps-script google-drive-api telegram-bot

我想要一个将特定照片设置为群组图像的电报机器人。在这里,您可以看到关于该方法的bot api(https://core.telegram.org/bots/api#setchatphoto)。

我正在使用此功能,但它不起作用。

function myFunction(){
    var chatId = SUPERGOUP_CHAT_ID
    var photo = {
      file_id: FILE_ID,
      file_size: 425707,
      file_path: 'documents/file_2.png'
    }

    var data = {
      method: "post",
      payload: {
        method: "setChatPhoto",
        chat_id: String(zone),
        photo: JSON.stringify(photo)
      }
    }
    UrlFetchApp.fetch('https://api.telegram.org/bot' + token + '/', data);

  }

电报回答此处的功能:

 {"ok":false,"error_code":400,"description":"Bad Request: photo should be uploaded as an InputFile"}

在线搜索我找到了这个解决方案,但它也不起作用。

 function uploadFile() {
   var group = SUPERGOUP_CHAT_ID
   var boundary = "labnol";
   var blob = DriveApp.getFileById('FILE_ID').getBlob();

   var attributes = "{\"name\":\"asd.jpg\", \"parent\":{\"id\":\"FOLDER_ID\"}}";

   var requestBody = Utilities.newBlob(
     "--"+boundary+"\r\n"
     + "Content-Disposition: form-data; name=\"attributes\"\r\n\r\n"
     + attributes+"\r\n"+"--"+boundary+"\r\n"
     + "Content-Disposition: form-data; name=\"file\"; filename=\""+blob.getName()+"\"\r\n"
   + "Content-Type: " + blob.getContentType()+"\r\n\r\n").getBytes()
   .concat(blob.getBytes())
   .concat(Utilities.newBlob("\r\n--"+boundary+"--\r\n").getBytes());

   var options = {
     method: "post",
     contentType: "multipart/form-data; boundary="+boundary,
     payload: {
       method: "setChatPhoto",
       chat_id: String(group),
       photo: requestBody
     }
   };

  var request = UrlFetchApp.fetch('https://api.telegram.org/bot' + token , options);

 Logger.log(request.getContentText());

 }

电报回答此处的功能:

Timeout: https://api.telegram.org/bot_TOKEN

你能找到解决方案吗?

提前致谢。

0 个答案:

没有答案