【问题标题】:How to download files from telegram to Gdrive using Google App Script by bot API如何通过bot API使用Google App Script将文件从电报下载到Gdrive
【发布时间】:2019-03-22 19:41:46
【问题描述】:

菜鸟问题,我正在尝试使用 Bot Api 和 Google App Script 将文件从 Telegram 服务器下载到 Google Drive。据我所知,Telegram 中有一个名为 @getpubliclink 的机器人,它将文件下载到他们的服务器,然后再次将它们重新上传到 Google Drive,这会造成带宽问题,而不是无服务器问题。

所以如果这个概念有效,那么这些问题就会得到解决。

这是我在 Google 应用脚本中的代码:

var token = "token"; // FILL IN YOUR OWN TOKEN
var telegramUrl = "https://api.telegram.org/bot" + token;
var webAppUrl = "https://script.google.com/macros/"; // FILL IN YOUR GOOGLE WEB APP ADDRESS
//var folder = "1-n9vtrED_oUOKrTnHlEeZR0B2uK8it9O"; // FILL IN THE ID OF YOUR SPREADSHEET
var downloadUrl = "https://api.telegram.org/file/bot" + token;



function getMe() {
  var url = telegramUrl + "/getMe";
  var response = UrlFetchApp.fetch(url);
  Logger.log(response.getContentText());
}

function getUpdates(){
  var url = telegramUrl + "/getUpdates";
  var response = UrlFetchApp.fetch(url);
  Logger.log(response.getContentText());
  
}

function setWebhook() {
  var url = telegramUrl + "/setWebhook?url=" + webAppUrl;
  var response = UrlFetchApp.fetch(url);
  Logger.log(response.getContentText());
}

function getFile(file_id) {
  var url = telegramUrl + "/getFile?file_id=A...EC";
  var response = UrlFetchApp.fetch(url);
   Logger.log(response.getContentText());
}

function File(file_id,file_path) {
  var FileURL = downloadUrl + "/photos/f.jpg";
 // var response = UrlFetchApp.fetch(url);
  Logger.log(response.getContentText());
}







function downloadFile(fileURL,folder) {
  
  var fileName = "";
  var fileSize = "file_size";
  
  var response = UrlFetchApp.fetch(fileURL, {muteHttpExceptions: true});
  var rc = response.getResponseCode();
  
  if (rc == 200) {
    var fileBlob = response.getBlob()
    var folder = DocsList.getFolder(folder);
    if (folder != null) {
      var file = folder.createFile(fileBlob);
      fileName = file.getName();
      fileSize = file.getSize();
    }
  }

}

到目前为止,我将文件作为文本作为响应,并且我将 fileURL 用于 Google Drive,但如果有更好的解决方案,它需要 URL。如何将这些文件下载到 Google 云端硬盘中?

【问题讨论】:

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


    【解决方案1】:

    我在我的项目中使用此脚本将 Telegram 中的文件移动到 Google Drive。 它奏效了!

    var fileid = contents.message.photo[contents.message.photo.length - 1]["file_id"];
    
    var response = UrlFetchApp.fetch(url + '/getFile?file_id=' + fileid);
    
    var urlphoto = 'https://api.telegram.org/file/bot' + token + '/' + JSON.parse(response.getContentText()).result["file_path"];
    
    var resa = UrlFetchApp.fetch(urlphoto);
    var blob = resa.getBlob();
    
    var jum = DriveApp.createFile(blob).setName(new Date().toLocaleString());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-07
      • 1970-01-01
      • 2014-05-18
      • 1970-01-01
      • 1970-01-01
      • 2016-10-18
      相关资源
      最近更新 更多