名shu 发表于 2023-7-25 10:40

基于金山文档和微信推送服务实现自动化签到的可行性研究

本帖最后由 名shu 于 2023-12-15 10:33 编辑

摘要
https://static.52pojie.cn/static/image/hrline/1.gif
在众多站内外论坛大佬们的帖子启发下,本文旨在探讨如何结合金山文档的自动任务功能与公众号消息推送平台,实现对阿里云盘的自动化签到,并将签到结果实时推送至微信公众号,从而实现便捷的签到结果通知,避免繁琐的邮箱配置。通过本文的介绍与讨论,读者将能够了解并掌握一种简单高效的方式来实现自动化签到与微信通知功能。

更新日志   在线教程


脚本介绍:本脚本用于小米社区、阿里云盘、B站直播签到,原理是借助金山在线表格自带定时脚本功能实现,无需自己的服务器,0成本,上手简单,注意,此功能能否永久有效,取决于金山官方是否持续免费开放AirScript以及各网站是否加强机器人验证。


免责声明:本脚本均为调用官方接口实现,脚本内容公开,无加密,可二改,无有害内容>>>自动签到(脚本分享)<<<导入请看下方教程一、保存并配置表格
(先注册登录金山云文档)打开开头分享的在线表格,点击左上角菜单,选择另存为,选择保存路径并打开


http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/OMNGKBIA24?依次点击进入【效率】-【高级开发】-【AirScript脚本编辑器】http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/HQ7V2BIA4Q?


给每个脚本添加【网络服务】,没加这个没法执行脚本,完成后关闭【脚本编辑器】http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/QA7V2BIAM4?



在【通知消息】页面,配置要通知的消息和推送渠道,目前可用推送方式只有【方糖】和【企业微信群聊机器人】http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/SY7V2BIACQ?


打开要签到的配置工作表,按照【提示】填写单元格中的信息


http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/TE7V2BIA6Q?二、代码试运行
再次打开【脚本编辑器】,在每个脚本下手动点击运行按钮,运行脚本http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/VM7V2BIAAE?


运行成功后,在【消息通知】工作表中会显示本次签到信息,当所有签到脚本都执行一遍后,再执行消息推送脚本(如下图二),该脚本将会一次性把所有签到结果按你设置的渠道进行推送。


http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/XE7V2BIAMU?http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/XY7V2BIACA?推送效果如下:
方糖http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/YY7V2BIBRY?
企微机器人http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/ZE7V2BIALY?

三、设置定时任务
菜单栏依次点击【效率】-【高级开发】-【定时任务】


http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/DJAF2BIATQ?在右侧弹出的定时任务窗口中选择【创建任务】,注意触发时间选择“每天”,时间点选在凌晨这种服务器压力比较小的时间段,如果选在7点或者7:30,脚本很可能执行失败而导致漏签。
消息通知脚本的定时,应选在其它签到脚本执行时间之后(别问为什么)。http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/GVAF2BIAWU?http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/HFAF2BIABI?



至此,脚本配置完成,解放双手。


四、注意
如果出现签到无提醒,查看脚本日志无任何输出,很有可能是你设置的脚本执行时间处于高峰期,服务器压力过大,请更换一个时间再试试。
查看脚本执行日志方式如下:http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/DINF4BIAGI?http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/REMV4BIAOY?


【附加教程】Server酱(方糖)的注册
1. 网页进入官网:https://sct.ftqq.com/sendkey
2. 扫码关注公众号会自动登录(后续该公众号会推送消息,不要取消关注),复制授权keyhttp://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/R5AF2BIADM?


【附加教程】获取企微机器人webhook
1. 下载企业微信(以电脑版为例)
2. 注册一个自己的企业(无需认证,如果有人打电话推业务,就说自己是注册用于个人测试的)
3. 点击加号选择一个微信好友加入企业并创建群聊(没女朋友就用小号:)),在群管理中添加机器人http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/URAF2BIAWE?http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/UZAF2BIAVE?


4. 复制该机器人的webHook地址http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/XJAF2BIAAM?


【附加教程】cookie获取示例(小米社区)
按对应表格提示网址,复制网址后用浏览器打开(或直接点击跳转)


http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/HYEV4BIA3A?按F12打开开发者工具(推荐使用谷歌浏览器、360极速浏览器或者微软Edge,不要用火狐)


http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/FYFF4BIAFM?找到cookie填入表格(不推荐控制台JS代码获取法,该方法获取的cookie不完整)


http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/MIFV4BIAZ4?http://www.kdocs.cn/api/v3/office/copy/a05MM3VKbllZK2FpaVlYTUN2dUhvZzRzRER0SUZKdjVZL0FGakx6S0Y1L21MTHd3ZVhTNytjTUMyc3E2b040QVdzVHR2OGJhWTMxTzZyVHQrV1B5M2tSd1ZxTDBEUjhQMCtGSXJEV3QyTjkwMXB5MjVQWVNYUFlVOGg4ZkJTVDVKbkl4cUxsTTZxOWhDSGs4M3BCcVg0RlZnYlpIbHlUTUhXWitRck1TVThLOFZLekhqUW5GUzluTkszNGJKclY0MDc2OW5CVkN4cytEaUNUK2grUkFUMUpJak5SRHhORU5UOUd0bnBNc2lzR3FwR2lYbkU2R2lxaTA0MFJZV2YyVk9Jd2RIN3pTNjZRPQ==/attach/object/Y4FV4BIATI?

参考文章
https://static.52pojie.cn/static/image/hrline/1.gif
本文实现思路来自
本站大佬 @qike2391 【阿里云盘自动每日签到,无需部署,无需服务器(二次创作) 】
知乎 小小猪 【阿里云盘自动每日签到,无需部署,无需服务器】
GitHubImYrS 【aliyun-auto-signin】
金山文档API 【https://airsheet.wps.cn/docs/api/excel/overview.html】

名shu 发表于 2023-7-28 16:51

本帖最后由 名shu 于 2023-11-14 08:37 编辑

彩色的粉笔丶 发表于 2023-7-28 15:37
楼主,B站的代码能否分享
B站签到和最新的表格脚本已更新到贴文文末云盘中,此楼代码已删除
2023.08.11 更新B站年度大会员每月B币券自动领取,和B币券过期提醒(测试),新增小米社区签到(不稳定)
2023.08.13 解决小米社区签到Cookie易过期失效问题(不确定是否根治,持续观察中...)
2023.08.25 解决小米社区签到报Cookie异常(原因是小米社区改了接口)
2023.09.13 解决阿里云盘token过期不发送提醒问题
2023.09.14 更新每次签到自动获取新的refresh_token,无需每月手动更新
2023.09.25 更新阿里云盘月底自动领未领取签到奖励
2023.10.12 BILIBILI修复不是大会员不通知消息的BUG
2023.11.04 更新推送方式,新增了方糖和企微机器人推送(原pushplus已失效),所有签到结果将归纳到【通知消息】工作表后统一推送,减少推送次数。取消了邮件通知方式(该方式发件箱容易被标记为骚扰邮件而被服务器拉黑),需要邮件通知的只能用旧版了。修复了阿里签到不领奖励时,通知消息会带有undefined。(本次更新是涉及到表格模板和脚本代码的全面更新,请按照教程文件重新配置,避免运行出错)
2023.11.10 修复小米社区签到失效,增加自动完成点赞帖子任务;更改消息通知规则:当是否通知填“否”时,若签到结果异常,仍会触发通知消息。(请更新“消息通知脚本”和“小米社区脚本”)
2023.11.14 ①“消息通知”脚本更新 ②更新“小米社区”脚本,无需抓token ③更新表格,“小米社区”工作表F列新增“拔萝卜”任务

名shu 发表于 2023-7-26 09:50

本帖最后由 名shu 于 2023-8-5 12:35 编辑

这个方法能实现很多自动签到,待我重构一下文档和代码再发出来{:1_911:},更新后的模板及食用教程见贴文文末云盘

renhuangdou 发表于 2024-1-31 20:09

https://s11.ax1x.com/2024/01/31/pFMZTns.png
小米社区的运行了好久都没有完成,不知道为什么

翼国游者 发表于 2023-12-5 10:40

楼主,我发现通知信息里面,有道和52的反了,而且52好像没有成功,因为我在论坛还是能签……

翼国游者 发表于 2023-11-29 10:29

名shu 发表于 2023-11-28 21:15
上色的才填,其它不用管
好的,小米目前寄了,是不是还得继续等{:1_908:}

翼国游者 发表于 2023-11-28 15:37

本帖最后由 翼国游者 于 2023-11-28 16:02 编辑

请问LZ,B站的那个csrf令牌作甚的?需要填写么?

Kls673M 发表于 2023-11-16 10:12

大佬, 新版的信息通知“信息内容”里面,发现B站的信息只获取了msg的信息,用("用户A" + row + msg)且叠加比较好吧,如果多账号只记录最后一条信息了,会出现信息记录不完整,

skipandgoon 发表于 2023-11-16 08:38

本帖最后由 skipandgoon 于 2023-11-16 08:43 编辑

小米社区还是显示人机校验失败{:1_909:}

7ucifer 发表于 2023-11-12 01:41

本帖最后由 7ucifer 于 2023-11-12 01:43 编辑

发现server酱不开通会员无法查看推送的具体内容
所以我改动了一下消息推送脚本中的 sndNotify 方法
增加了对 pushdeer 推送的支持

function sndNotify(typ, titl, content, auth) {
const pushName = ['pushPlus', '方糖', '企微机器人', 'pushdeer'] // 新增 pushdeer
const urls = ["http://www.pushplus.plus/send", "https://sctapi.ftqq.com/" + auth + ".send", auth, "https://api2.pushdeer.com/message/push"] // 新增 pushdeer api url
let headers = { "content-type": "application/json" }
let datas = [
    { "token": auth, "title": titl, "content": content },//pushplus
    { 'title': titl, 'desp': content },//方糖
    {
      "msgtype": "text",
      "text": {
      "content": '>>>' + titl + '<<<' + content,
      // "mentioned_mobile_list": ["@all"]
      }
    }, //企微机器人
    {
      "text": titl,
      "desp": content,
      "type": "text",
      "pushkey": auth
    } // 新增 pushdeer 请求 data
]
let json = HTTP.post(urls, datas, { 'headers': headers }).text()
console.log(pushName + "推送结果:" + json)
return JSON.parse(json)
}

表格改动:
需要在 sheet 消息推送 中的 F列 添加一个下拉选项 4 并在对应单元格选择 4
然后将 pushdeer 提供的 key 填入 auth 单元格


效果:

xinghency 发表于 2023-11-9 00:36

大佬,4号新版脚本只能签到不能自动领取奖励是为什么呀?

名shu 发表于 2023-7-25 14:09

本帖最后由 名shu 于 2023-7-28 17:02 编辑

本站参考链接被不知名原因删帖了,大家参考以下链接前6步也可以(步骤基本一样)知乎 小小猪 【阿里云盘自动每日签到,无需部署,无需服务器】

B站和B站直播签到代码和模板在21#,点此跳转

代码中的单元格位置有改动(会导致微信推送用不了),以下为最新代码:
var myDate = new Date(); // 创建一个表示当前时间的 Date 对象
var data_time = myDate.toLocaleDateString(); // 获取当前日期的字符串表示

function sleep(d) {
for (var t = Date.now(); Date.now() - t <= d;); // 使程序暂停执行一段时间
}

function log(message) {
console.log(message); // 打印消息到控制台
// TODO: 将日志写入文件
}

var tokenColumn = "A"; // 设置列号变量为 "A"
var signInColumn = "B"; // 设置列号变量为 "B"
var rewardColumn = "C"; // 设置列号变量为 "C"
var emailColumn = "F"; // 设置列号变量为 "F"
var sendEmailColumn = "G"; // 设置列号变量为 "G"
var resultColumn = "J"; // 设置列号变量为 "J"

for (let row = 2; row <= 5; row++) { // 循环遍历从第 2 行到第 5 行的数据
var refresh_token = Application.Range(tokenColumn + row).Text; // 获取指定单元格的值
var sflq = Application.Range(signInColumn + row).Text; // 获取指定单元格的值
var sflqReward = Application.Range(rewardColumn + row).Text; // 获取指定单元格的值
var jsyx = Application.Range(emailColumn + row).Text; // 获取指定单元格的值
var sendEmail = Application.Range(sendEmailColumn + row).Text; // 获取指定单元格的值
var customEmailResult = Application.Range(resultColumn + row).Text; // 获取指定单元格的值

var emailConfigured = Application.Range("J1").Text; // 获取指定单元格的值
var zdy_host = Application.Range("J2").Text; // 获取指定单元格的值
var zdy_post = parseInt(Application.Range("J3").Text); // 获取指定单元格的值并转换为整数
var zdy_username = Application.Range("J4").Text; // 获取指定单元格的值
var zdy_pasd = Application.Range("J5").Text; // 获取指定单元格的值

if (sflq == "是") { // 如果“是否签到”为“是”
    if (refresh_token != "") { // 如果刷新令牌不为空
      // 发起网络请求-获取token
      let data = HTTP.post("https://auth.aliyundrive.com/v2/account/token",
      JSON.stringify({
          "grant_type": "refresh_token",
          "refresh_token": refresh_token
      })
      );
      data = data.json(); // 将响应数据解析为 JSON 格式
      var access_token = data['access_token']; // 获取访问令牌
      var phone = data["user_name"]; // 获取用户名

      if (access_token == undefined) { // 如果访问令牌未定义
      log("单元格【" + tokenColumn + row + "】内的token值错误,程序执行失败,请重新复制正确的token值");
      continue; // 跳过当前行的后续操作
      }

      try {
      var access_token2 = 'Bearer ' + access_token; // 构建包含访问令牌的请求头
      // 签到
      let data2 = HTTP.post("https://member.aliyundrive.com/v1/activity/sign_in_list",
          JSON.stringify({ "_rx-s": "mobile" }),
          { headers: { "Authorization": access_token2 } }
      );
      data2 = data2.json(); // 将响应数据解析为 JSON 格式
      var signin_count = data2['result']['signInCount']; // 获取签到次数

      var logMessage = "账号:" + phone + " - 签到成功,本月累计签到 " + signin_count + " 天";
      var rewardMessage = "";

      if (sflqReward == "是") { // 如果“是否领取奖励”为“是”
          if (sflq == "是") { // 如果“是否签到”为“是”
            try {
            // 领取奖励
            let data3 = HTTP.post(
                "https://member.aliyundrive.com/v1/activity/sign_in_reward?_rx-s=mobile",
                JSON.stringify({ "signInDay": signin_count }),
                { headers: { "Authorization": access_token2 } }
            );
            data3 = data3.json(); // 将响应数据解析为 JSON 格式
            var rewardName = data3["result"]["name"]; // 获取奖励名称
            var rewardDescription = data3["result"]["description"]; // 获取奖励描述
            rewardMessage = " " + rewardName + " - " + rewardDescription;
            } catch (error) {
            if (error.response && error.response.data && error.response.data.error) {
                var errorMessage = error.response.data.error; // 获取错误信息
                if (errorMessage.includes(" - 今天奖励已领取")) {
                  rewardMessage = " - 今天奖励已领取";
                  log("账号:" + phone + " - " + rewardMessage);
                } else {
                  log("账号:" + phone + " - 奖励领取失败:" + errorMessage);
                }
            } else {
                log("账号:" + phone + " - 奖励领取失败");
            }
            }
          } else {
            rewardMessage = " - 奖励待领取";
          }
      } else {
          rewardMessage = " - 奖励待领取";
      }

      log(logMessage + rewardMessage);

      if(Application.Range("J9").Text=="是"){//是否推送至微信
          var msgUrl = "http://www.pushplus.plus/send" //
          var msgTken = Application.Range("J10").Text //token
          var msgTitle = "阿里云盘签到通知 - " + data_time//标题
          var msgContt = logMessage + rewardMessage//消息内容
          var msgData = {"token":msgTken,"title":msgTitle,"content":msgContt} //将消息内容装入data
          var msgHeaders = {"content-type" : "application/json"}//headers
          let resp = HTTP.post(msgUrl,msgData,msgHeaders) //发送请求
          const res = resp.json();//返回json

          if (resp.status !== 200) {
                console.log("签到结果推送至微信失败");
            throw new Error("err! status is " + resp.status())
            }else if(res.code != 200){
                console.log("签到结果推送至微信失败: "+res.msg)
            } else{
                console.log("签到结果已推送至微信");
                console.log(res);
            }
      }
      if (sendEmail == "是") { // 如果“是否发送邮件”为“是”
          try {
            let mailer;
            if (customEmailResult == "是") { // 如果“是否自定义邮箱”为“是”
            var customEmail = Application.Range(resultColumn + row).Text; // 获取指定单元格的值
            if (emailConfigured === "是") { // 如果配置了自定义邮箱
                mailer = SMTP.login({
                  host: zdy_host,
                  port: zdy_post,
                  username: zdy_username,
                  password: zdy_pasd,
                  secure: true
                });
                mailer.send({
                  from: "阿里云盘签到<" + zdy_username + ">",
                  to: customEmail,
                  subject: "阿里云盘签到通知 - " + data_time,
                  text: logMessage + rewardMessage
                });
            } else { // 如果未配置自定义邮箱,默认使用示例邮箱
                mailer = SMTP.login({
                  host: "smtp.163.com",
                  port: 465,
                  username: "fs8484848@163.com",
                  password: "QADSEMPKDHDAVWVD",
                  secure: true
                });
                mailer.send({
                  from: "阿里云盘签到<fs8484848@163.com>",
                  to: customEmail,
                  subject: "阿里云盘签到通知 - " + data_time,
                  text: logMessage + rewardMessage
                });
            }
            log("账号:" + phone + " - 已发送邮件至:" + customEmail);
            } else { // 如果“是否自定义邮箱”为“否”
            if (emailConfigured === "是") { // 如果配置了自定义邮箱
                mailer = SMTP.login({
                  host: zdy_host,
                  port: zdy_post,
                  username: zdy_username,
                  password: zdy_pasd,
                  secure: true
                });
                mailer.send({
                  from: "阿里云盘签到<" + zdy_username + ">",
                  to: jsyx,
                  subject: "阿里云盘签到通知 - " + data_time,
                  text: logMessage + rewardMessage
                });
            } else { // 如果未配置自定义邮箱,默认使用示例邮箱
                mailer = SMTP.login({
                  host: "smtp.163.com",
                  port: 465,
                  username: "fs8484848@163.com",
                  password: "QADSEMPKDHDAVWVD",
                  secure: true
                });
                mailer.send({
                  from: "阿里云盘签到<fs8484848@163.com>",
                  to: jsyx,
                  subject: "阿里云盘签到通知 - " + data_time,
                  text: logMessage + rewardMessage
                });
            }
            log("账号:" + phone + " - 已发送邮件至:" + jsyx);
            }
          } catch (error) {
            log("账号:" + phone + " - 发送邮件失败:" + error);
          }
      }
      } catch {
      log("单元格【" + tokenColumn + row + "】内的token签到失败");
      continue; // 跳过当前行的后续操作
      }
    } else {
      log("账号:" + phone + " 不签到");
    }
}
}

var currentDate = new Date(); // 创建一个表示当前时间的 Date 对象
var currentDay = currentDate.getDate(); // 获取当前日期的天数
var lastDayOfMonth = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0).getDate(); // 获取当月的最后一天的日期

if (currentDay === lastDayOfMonth) { // 如果当前日期是当月的最后一天
for (let row = 2; row <= 20; row++) { // 循环遍历从第 2 行到第 20 行的数据
    var sflq = Application.Range(signInColumn + row).Text; // 获取指定单元格的值
    var sflqReward = Application.Range(rewardColumn + row).Text; // 获取指定单元格的值

    if (sflq === "是" && sflqReward === "是") { // 如果“是否签到”和“是否领取奖励”均为“是”
      var refresh_token = Application.Range(tokenColumn + row).Text; // 获取指定单元格的值
      var jsyx = Application.Range(emailColumn + row).Text; // 获取指定单元格的值
      var phone = "账号:" + phone; // 构建账号信息字符串

      if (refresh_token !== "") { // 如果刷新令牌不为空
      // 发起网络请求-获取token
      let data = HTTP.post("https://auth.aliyundrive.com/v2/account/token",
          JSON.stringify({
            "grant_type": "refresh_token",
            "refresh_token": refresh_token
          })
      );
      data = data.json(); // 将响应数据解析为 JSON 格式
      var access_token = data['access_token']; // 获取访问令牌

      if (access_token === undefined) { // 如果访问令牌未定义
          log("单元格【" + tokenColumn + row + "】内的token值错误,程序执行失败,请重新复制正确的token值");
          continue; // 跳过当前行的后续操作
      }

      try {
          var access_token2 = 'Bearer ' + access_token; // 构建包含访问令牌的请求头
          // 领取奖励
          let data4 = HTTP.post(
            "https://member.aliyundrive.com/v1/activity/sign_in_reward?_rx-s=mobile",
            JSON.stringify({ "signInDay": lastDayOfMonth }),
            { headers: { "Authorization": access_token2 } }
          );
          data4 = data4.json(); // 将响应数据解析为 JSON 格式
          var claimStatus = data4["result"]["status"]; // 获取奖励状态
          var day = lastDayOfMonth; // 获取最后一天的日期

          if (claimStatus === "CLAIMED") {
            log("账号:" + phone + " - 第 " + day + " 天奖励领取成功");
          } else {
            log("账号:" + phone + " - 第 " + day + " 天奖励领取失败");
          }
      } catch {
          log("单元格【" + tokenColumn + row + "】内的token签到失败");
          continue; // 跳过当前行的后续操作
      }
      } else {
      log("账号:" + phone + " 不签到");
      }
    }
}

log("自动领取未领取奖励完成。");
}

名shu 发表于 2023-7-26 09:05

本帖最后由 名shu 于 2023-7-26 09:09 编辑

阿里token获取方式↓↓↓

hyzZ 发表于 2023-7-26 09:25

最近看到这么多自动签到的分享,搞得自己也有点心痒痒,想将自己玩的手游,各种软件的礼包领取进行自动化了

ziangu 发表于 2023-7-26 09:29

也可以在控制台直接输入以下代码获取token
// var token = JSON.parse(localStorage.getItem('token'));
// console.log('refresh_token:', token.refresh_token);

XiaoYanMr 发表于 2023-7-26 09:57

邮箱推送,微信那个pushplus不推送消息呢,

名shu 发表于 2023-7-26 10:10

XiaoYanMr 发表于 2023-7-26 09:57
邮箱推送,微信那个pushplus不推送消息呢,

激活消息试试

XiaoYanMr 发表于 2023-7-26 10:15

名shu 发表于 2023-7-26 10:10
激活消息试试

我知道原因了,我一个小白可太难了,是因为你那个表格模板里面,微信推送的位置分别是J9和J10,而那个代码里面的位置是J22和J23,我也不知道描述的对不对,反正我现在折腾成功了,哈哈哈哈哈

hyzZ 发表于 2023-7-26 10:17

注意代码100行和102行内容,楼主获取token和是否推送固定写死为J23和J22,实际模板对应单元格为J10和J9,如果不修改,你就收不到微信推送的消息,哈哈
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 基于金山文档和微信推送服务实现自动化签到的可行性研究