iwestlin / gd-utils

Google Drive 百宝箱
1.31k stars 425 forks source link

/help Telegram 没有回复消息 #141

Closed zvg closed 4 years ago

zvg commented 4 years ago

操作系统: Debian 10 使用的是 : G Suite 12 美元套餐

表现为: 在 Telegram xxx_bot 中输入 /help 没有得到任何回复

手动架设,没有使用一键脚本. 实在不知道应该怎么查询故障原因了,请帮帮我~

下面是我的配置是状态:

gd-utils/sa 中 json 数据从 AutoRclone/accounts 复制, AutoRclone 正常工作.


所有参数使用引号 '' 包起来

tg_token: 从 botfather 获得, 格式 ‘12345:abcdefg’ tg_whitelist: ‘username’ 我tg的username, 是 t.me/username的 username,不是 userinfobot 获取的 UID

const DEFAULT_TARGET = '共享盘Folder ID' 
const AUTH = {
  client_id: 'xxxxxxxjen.apps.googleusercontent.com',
  client_secret: 'xxxxxxxx',
  refresh_token: 'xxxxxxx',
  expires: 0, // 可以留空
  access_token: '', // 可以留空
  tg_token: '12345:abcdefg', 
  tg_whitelist: ['xxx']
}

执行

curl 'http://gd.xxx.com/api/gdurl/count?fid=124pjM5LggSuwI1n40bcD5tQ13wS0M6wg'

提示 : gd-utils 成功启动#


执行

curl 'http://gd.xxx.com/api/gdurl/count\?fid=124pjM5LggSuwI1n40bcD5tQ13wS0M6wg'

提示: not found#


执行

curl -F "url=http://gd.xxx.com/api/gdurl/tgbot" 'https://api.telegram.org/12345:abcdefg/setWebhook'

输出 404

{"ok":false,"error_code":404,"description":"Not Found"}#

浏览器直接访问下列两个网址 提示 not found

nginx -v nginx version: nginx/1.18.0

location / {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://127.0.0.1:23333/;
    }

node -v v12.18.3

修改 config.js 使用 pm2 reload server 重启


pm2 l

┌─────┬───────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name      │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼───────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ server    │ default     │ 1.0.1   │ fork    │ 1918     │ 21m    │ 2    │ online    │ 0.4%     │ 49.3mb   │ root     │ disabled │
└─────┴───────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
iwestlin commented 4 years ago

哈哈你这个issue堪称典范,太难得了

curl -F "url=http://gd.xxx.com/api/gdurl/tgbot" 'https://api.telegram.org/12345:abcdefg/setWebhook'

这一步错了 改成

curl -F "url=https://gd.xxx.com/api/gdurl/tgbot" 'https://api.telegram.org/bot12345:abcdefg/setWebhook'

12345:abcdefg前面有个bot

zvg commented 4 years ago

😂😂😂 原来是少这三个字母. 谢谢帮助 🙏

现在提示必须使用 https ? 奇怪我看一键脚本的源代码,并没有证书申请的过程呀

{"ok":false,"error_code":400,"description":"Bad Request: bad webhook: HTTPS url must be provided for webhook"}#
iwestlin commented 4 years ago

如果你的域名是托管在cloudflare上的,那么它默认会加上https中转,你试试能不能直接访问 https://gd.xxx.com

zvg commented 4 years ago

谢谢帮助 🙏

成功了!!!

[使用帮助]
命令 | 说明
=====================
/help | 返回本条使用说明
=====================
/count shareID [-u] | 返回sourceID的文件统计信息
sourceID可以是google drive分享网址本身,也可以是分享ID。如果命令最后加上 -u,则无视之前的记录强制从线上获取,适合一段时候后才更新完毕的分享链接。
=====================
/copy sourceID targetID [-u] | 将sourceID的文件复制到targetID里(会新建一个文件夹)
若不填targetID,则会复制到默认位置(在config.js里设置)。
如果设置了bookmark,那么targetID可以是bookmark的别名。
如果命令最后加上 -u,则无视本地缓存强制从线上获取源文件夹信息。
命令开始执行后会回复此次任务的taskID。
=====================
/task | 返回对应任务的进度信息
用例:
/task | 返回所有正在运行的任务详情
/task 7 | 返回编号为 7 的任务详情
/task all | 返回所有任务记录列表
/task clear | 清除所有状态为已完成的任务记录
/task rm 7 | 删除编号为 7 的任务记录
=====================
/bm [action] [alias] [target] | bookmark,添加常用目的文件夹ID
会在输入网址后返回的「文件统计」「开始复制」这两个按钮的下方出现,方便复制到常用位置。
用例:
/bm | 返回所有设置的收藏夹
/bm set movie folder-id | 将folder-id添加到收藏夹,别名设为movie
/bm unset movie | 删除此收藏夹