运行演示视频(高清): https://v.youku.com/v_show/id_XNDEyMDUyMTc3Ng==.html
去年的时候开发了练手,在 v2 上发过一次展示帖子: https://www.v2ex.com/t/479170
中间这段时间有一些 v2 的朋友加我想要使用.无奈当初只是纯粹的代码运行,没有匹配相对应的前后台逻辑,所以就没有发布.这次趁着周末两天比较闲(其实是失业了),更新了一下..
关于技术的使用:
1.网站界面用了 layui 的免费模版(我基本不写前端的,第一次用 layui,磕磕碰碰的粘帖了一些界面代码..
2.后台 php,没用框架.因为时间问题,不想设计什么用户登录注册等逻辑,统一使用 QQ 登录授权方式.交互问题更是欠考虑,一律表单~
3.安卓端,原生 java 开发.是的,还是因为时间问题,没有设计界面.核心是使用无障碍服务进行自动化操作.有个地方需要注意,在朋友圈的动态,打开多图进行保存和切换的时候,需要满足 ROOT 权限或者安卓 7.0+这俩条件之一,因为单纯的无障碍无法长按微信图片打开菜单保存,需要 root 下执行 adb 命令.或者 7.0+的系统无障碍可以模拟手势长按.
4.存储方式:七牛云对象存储. 之前有个项目用到七牛,所以这次的存储方式的代码就直接复制了.不过,对七牛实在没太深入,自己写了个生成上传凭证的代码,没用官方的 sdk,有点魔性,生成的凭证有的能用有的用不了.还望能看得出问题的大神前辈们指点迷津:
function qiniu_token($scope, $AccessKey, $SecretKey) {
$scopeArr = array(
'deadline' => strtotime("+1 hours"),
'scope' => $scope);
$token = json_encode($scopeArr);
$encodedPutPolicy = base64_encode($token);
$token = hash_hmac('sha1', $encodedPutPolicy, $SecretKey, TRUE);
$encodedSign = base64_encode($token);
$token = $AccessKey . ':' . $encodedSign . ':' . $encodedPutPolicy;
return $token;
}
当前已知问题和可新增功能:
1.每次扫描间隔只会读取最新的一条动态进行判断 -> 解决方案:1.可以进行滚动页面判断间隔期间是否刷新多条;2.可以在 root 情况下读取微信本地数据库判断刷新了几条(读取数据库的时候,可以取到图片的缩略图,但是没有解密算法的话取不到原图).
2.上面说的因为七牛的上传凭证生成问题,可能导致采集到的文件上传失败. -> 解决方案:1.当前使用的是循环请求生成六次凭证的方案.只能是个临时方案; 2.新增多个保存方式,例如加入阿里云腾讯云百度云以及自定义 url 的方式.
3.适配问题.当前仅测试一加 123 和小米 max 这四个机型.其他机型可能有一些蜜汁 bug..
4.可新增在 root 下读数据库获取动态发送者的 wxid 及头像功能.
5.可新增采集指定好友所有朋友圈数据功能.
7.网站还有一堆逻辑没写..
8. ....
最后:
上一段说的那些问题和待完善的,我估计都不会再去理他了,可能也不会再更新,除非这个 app 有一定量的用户..
这样的脚本采集方式是非常低效率的,如果看到这篇文章的你,真的有这方面的需求,可以考虑用 ipad 协议开发而成的程序.至于去哪里找,别问,问就是百度.
非盈利,纯兴趣项目.为了防止 seo,有兴趣用一下的朋友,网址可以到视频里面看浏览器地址栏即可.. 最近心态崩了,睡了,安..
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.