搭建TG机器人转存别人分享的 GoogleDrive 资源

投稿日時は 2022-07-05  1015 表示


一、开启相关API

使用Workspace管理员账号打开 https://console.cloud.google.com 启用API和服务,第一次打开会提示创建项目,按照提示创建就行了。(多刷新几次,时刻注意登录的账号是哪个)

然后选择“API和服务”标签下的“库”搜索并开启以下API(有部分已经默认开启了)

Google Drive API

Identity and Access Management (IAM) API

Service Usage API

Cloud Resource Manager API

IAM Service Account Credentials API

Di­rec­tory API

配置OAuth同意屏幕并创建客户端,Type选外外部,然后把自己邮箱添加到测试用户。

创建凭据,选 OAuth客户端,应用类型选桌面,名称随意,然后记录下客户端ID和密钥,下载json并重命名为 credentials.json

二、生成SA

Debian、Ubuntu环境下root用户执行以下命令

安装依赖

apt-get -y update && apt install wget curl python3 python3-pip git unzip screen -y

安装AutoRclone

git clone https://github.com/xyou365/AutoRclone && cd AutoRclone && pip3 install -r requirements.txt

然后将之前保存的 credentials.json 文件上传到 /root/AutoRclone 目录

在AutoRclone根目录执行

python3 gen_sa_accounts.py --quick-setup 1 --new-only

然后会返回一个链接,用浏览器打开进行授权,注意别用错账号。

如果出现报错请执行以下命令再重新执行上一步命令

pip3 install 'google-api-python-client==1.7.2'
pip3 install 'google-auth==1.8.0'
pip3 install 'google-auth-httplib2==0.0.3'
pip3 install 'google-auth-oauthlib==0.4.1'

执行 ls /root/AutoRclone/accounts 查看SA是否生成成功(100个json文件)

三、为SA添加团队盘读写权限

打开 https://console.cloud.google.com 依次选择 API和服务-凭据 在服务账号里面可以看到100个SA账号,邮箱全都复制了。

登录Workspace管理控制台 https://admin.google.com 依次选择 目录-群组,创建一个群组,名称随便,群组邮件地址随意。

进入刚创建好的群组,选批量添加成员,下载批量导入csv模版,格式如下:

群组邮箱,SA账号邮箱,SERVICE_ACCOUNT,MEMBER

一行一个,将SA账号批量添加进群组,然后在Google Drive团队盘中将 群组邮箱 添加为投稿者。

四、搭建TG机器人

安装 nodejs 环境以及 pm2 管理器

安装过程可参考

https://blog.lvlv.lv/archives/186

找个域名,添加一条 DNS 记录,指向你准备搭建机器人的服务器 IP

新建网站并配置 SSL,反向代理 http://127.0.0.1:23333

在TG找@BotFather创建一个机器人,记好API

Debian、Ubuntu环境root用户下执行以下代码

克隆项目

git clone https://github.com/iwestlin/gd-utils && cd gd-utils

安装依赖

npm install --unsafe-perm=true --allow-root

将SA授权文件复制到 /root/gd-utils/sa 目录

cp -r /root/AutoRclone/accounts/* /root/gd-utils/sa

在gd-utils根目录下执行以下命令检测SA有效性

./validate-sa.js 团队盘ID

获取refresh_token(以Mac为例)

在你电脑上打开终端 进入rclone根目录

./rclone authorize "drive" "之前保存的客户端ID" "之前保存的客户端秘钥"

在弹出的网页上授权以后回到终端会显示一大堆东西 记录其中的 refresh_token

打开 /root/gd-utils/config.js 并修改以下字段

const DEFAULT_TARGET 填写团队盘ID

client_id 填写客户端ID

client_secret 填写客户端密钥

refresh_token 填写上一步获取的refresh_token

tg_token 填写TG机器人的api

tg_whitelist 写你的TG用户名

进入gd-utils目录执行以下命令检查,如果命令返回了你的Google Drive个人空间的根目录的内容,说明配置成功(如个人空间里没有内容,会显示[],不用在意)

node check.js

启动

pm2 start server.js

浏览器访问

https://你的机器人域名/api/gdurl/count?fid=124pjM5LggSuwI1n40bcD5tQ13wS0M6wg

如果显示gd-utils成功启动则表示成功

设置Webhook

在终端执行以下命令

curl -F "url=https://你的机器人域名/api/gdurl/tgbot" 'https://api.telegram.org/bot你的机器人api/setWebhook'

(假设你的机器人域名是host.domain.com,机器人api是ABCDEFG,那么完整的格式是:curl -F "url=https://host.domain.com/api/gdurl/tgbot" 'https://api.telegram.org/botABCDEFG/setWebhook')

出现 Webhook was set 代表成功

然后给你的机器人发送 /help 查看使用方法

撒花完结

最終更新日 2023-12-08