V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
qq292382270
V2EX  ›  分享创造

微信朋友圈采集 APP,一个周末小作品~

  •  
  •   qq292382270 · 2019-04-01 04:09:25 +08:00 · 6577 次点击
    这是一个创建于 2071 天前的主题,其中的信息可能已经有所发展或是发生改变。

    运行演示视频(高清): 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,有兴趣用一下的朋友,网址可以到视频里面看浏览器地址栏即可.. 最近心态崩了,睡了,安..

    10 条回复    2019-09-26 17:21:30 +08:00
    ji980925
        1
    ji980925  
       2019-04-01 07:53:56 +08:00 via Android
    我用按键精灵写过一个,遇到的问题和你的基本一样,只能识别第一条动态等等。
    按键精灵虽然 low, 但是好在能适配大部分 root 过的 Android 手机
    licoycn
        2
    licoycn  
       2019-04-01 09:28:39 +08:00
    用 auto.js 会不会也可以实现相关功能
    a62527776a
        3
    a62527776a  
       2019-04-01 11:03:39 +08:00   ❤️ 1
    优酷毒啊 45 秒广告就关了
    eW91IHNlZSBtZQ
        4
    eW91IHNlZSBtZQ  
       2019-04-01 12:29:17 +08:00
    为啥不传到 bilibili
    qq292382270
        5
    qq292382270  
    OP
       2019-04-01 15:07:30 +08:00
    @ji980925 最简单的就是滚动一页就可以解决问题
    @licoycn auto.js 也是这样实现的. 一样的
    @a62527776a 哈哈...
    @eW91IHNlZSBtZQ 我可能是个假程序员..没有在 bilibili 上传过视频
    Shawnnnnnn
        6
    Shawnnnnnn  
       2019-04-02 08:22:37 +08:00 via iPhone
    @qq292382270 acfun? Youtube?
    milesnihao
        7
    milesnihao  
       2019-04-02 09:10:15 +08:00
    bilibili 的题目难的我现在都没做出来。
    zw1234
        8
    zw1234  
       2019-04-02 10:11:57 +08:00
    16 年的时候我玩过,采集整个朋友圈,然后排版做成电子书了,商业化失败了...有兴趣交流下:emhlbmc1OTM0NDY4OTk=
    qq292382270
        9
    qq292382270  
    OP
       2019-04-02 19:27:43 +08:00
    @Shawnnnnnn 哈哈.. 也没有..
    @milesnihao 我靠百度硬查了一半的题..
    @zw1234 已加
    theliuqi
        10
    theliuqi  
       2019-09-26 17:21:30 +08:00
    膜拜大佬,最近想去深圳发展.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   912 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:41 · PVG 05:41 · LAX 13:41 · JFK 16:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.