gpt4 book ai didi

javascript - 如何通过 bot API 使用 Google App 脚本将文件从电报下载到 Gdrive

转载 作者:行者123 更新时间:2023-12-05 07:29:12 25 4
gpt4 key购买 nike

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

因此,如果这个概念可行,那么这些问题就会得到解决。

这是我在 Google App Script 中的代码:

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();
}
}

}

到目前为止,我得到了文件作为响应的文本,我正在为 Google 云端硬盘使用 fileURL,但如果有更好的解决方案可用,它需要 url。如何将这些文件下载到 Google 云端硬盘?

最佳答案

我在我的项目中使用这个脚本将 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());

关于javascript - 如何通过 bot API 使用 Google App 脚本将文件从电报下载到 Gdrive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52866529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com