V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
tiaod
V2EX  ›  奇思妙想

子弹短信是基于网易云信的,是不是意味着可以自己写一个客户端?

  •  
  •   tiaod · 2018-08-31 14:00:21 +08:00 via Android · 10236 次点击
    这是一个创建于 2057 天前的主题,其中的信息可能已经有所发展或是发生改变。
    因为使用网易云信 SDK,意味着 API 都是开放的,能不能写一个开源的客户端出来和子弹短信的用户聊天?
    第 1 条附言  ·  2018-08-31 16:52:08 +08:00
    总结:即时通信部分是可以用 SDK,但是身份验证、好友列表 API 是子弹短信自建的服务器提供的,对这些 API 进行抓包分析属于逆向工程,虽然技术上可行,但是法律和道德不允许。
    44 条回复    2018-10-09 14:05:57 +08:00
    linuxchild
        1
    linuxchild  
       2018-08-31 14:17:12 +08:00
    不可以啊……
    你可以自己搞一套,但是和那个肯定是隔离的
    chinvo
        2
    chinvo  
       2018-08-31 14:18:51 +08:00 via iPhone
    理论上可以,毕竟 API key 在 xml 里面
    a793657136
        3
    a793657136  
       2018-08-31 14:19:11 +08:00 via Android
    网易云信有 key,然后还有包名检测,证书,你是打算把他 app 全逆了么
    tiaod
        4
    tiaod  
    OP
       2018-08-31 14:49:22 +08:00 via Android
    @linuxchild 为什么,只要使用相同的 appkey,肯定是可以互通的。
    @a793657136 用 web 端的 sdk

    我感觉最主要的困难是子弹短信的应用服务器的 API,只能靠抓包来分析,其他都不是问题
    mokeyjay
        5
    mokeyjay  
       2018-08-31 15:24:02 +08:00   ❤️ 1
    开玩笑,要真能这样网易云信可以立即倒闭了
    ming
        6
    ming  
       2018-08-31 15:44:28 +08:00   ❤️ 7
    听说支付宝也是用的阿里云?是不是可以写个客户端给自己的支付宝转钱啊?
    Tink
        7
    Tink  
       2018-08-31 15:45:41 +08:00
    跟节点很配
    suley
        8
    suley  
       2018-08-31 15:52:40 +08:00
    @a793657136 app 全逆了也不行,创建客户端账号这一步关键操作是在服务器端进行的……
    dagger2
        9
    dagger2  
       2018-08-31 16:03:55 +08:00
    当然不能了。。
    tiaod
        10
    tiaod  
    OP
       2018-08-31 16:07:23 +08:00   ❤️ 2
    别着急攻击我,我也只是想来讨论下我的想法,所以也没发技术讨论啊,我发的奇思妙想→_→
    我上面也说了,主要是子弹短信应用服务器的 API 不知道,需要抓包来分析。但是感觉也不难,这一部分主要是处理了登录以及好友关系。

    写一个客户端最麻烦的部分,包括发送消息、消息同步之类的,直接用云信 SDK。

    可以参考一下 SDK 的 Demo,我还没去测试,就是看文档的话,提供 appkey,account,token 3 个参数就能用了。其中 appkey 已知(有人解包了),account 和 token 是和用户账户相关,通过请求应用服务器的 API 完成一次登录的流程就能获取到。

    https://dev.yunxin.163.com/docs/product/IM%E5%8D%B3%E6%97%B6%E9%80%9A%E8%AE%AF/SDK%E5%BC%80%E5%8F%91%E9%9B%86%E6%88%90/Web%E5%BC%80%E5%8F%91%E9%9B%86%E6%88%90/%E6%A6%82%E8%A6%81%E4%BB%8B%E7%BB%8D

    说不能的要说下具体的理由吧……
    justff
        11
    justff  
       2018-08-31 16:23:16 +08:00
    我也想实现 6 楼的想法,有大佬一起吗?钱对半分
    tiaod
        12
    tiaod  
    OP
       2018-08-31 16:24:27 +08:00
    @mokeyjay 为啥会倒闭,很多 App 将聊天作为附加功能,网易云信就很适合这种场景。并且这种聊天一般局限于 App 内,就算你拿 SDK 出来实现一个客户端也取代不了 App 本身。所以对于网易云信目前大部分客户来说,你能拿 SDK 轻松实现一个客户端对他们都没影响。
    YvesX
        13
    YvesX  
       2018-08-31 16:30:05 +08:00
    子弹短信公开提供了这些 API 吗?没有。
    所以你这属于逆向了别人。
    mokeyjay
        14
    mokeyjay  
       2018-08-31 16:37:32 +08:00
    @tiaod #12 不,我指的是如果你只是拿到 appkey 就能自己写个客户端,那网易云信这鉴权机制应该立即倒闭
    hundan
        15
    hundan  
       2018-08-31 16:40:30 +08:00 via Android
    理论上可以,做三方客户端有啥不行的,QQ 都有三方客户端。但是 6 楼那种思维有点太跳了,做个客户端等于可以给自己转钱?
    hundan
        16
    hundan  
       2018-08-31 16:42:08 +08:00 via Android
    但是逆向还开源出来,你怕是没有看用户协议,一般这种用户协议里都会写不准逆向的
    lneoi
        17
    lneoi  
       2018-08-31 16:46:46 +08:00
    关键是,你要聊天得先有办法获取到用户信息,而且逆向少不了了吧,这种获取核心隐私的东西,锤子要想搞大点,分分钟进去了
    tiaod
        18
    tiaod  
    OP
       2018-08-31 16:47:54 +08:00
    @mokeyjay 不不不,我意思是使用和子弹短信相同的 appkey 就能和子弹短信的用户通信。

    @hundan 有点微妙的区别,有现成的 SDK 可以用会大量地减少了开发一个第三方客户端的工作量。相对想给 QQ 微信写个客户端要更复杂些,毕竟底层很多东西要自己写。
    xiaorui2004
        19
    xiaorui2004  
       2018-08-31 16:49:24 +08:00 via Android
    这不算什么。人家同意的
    kingme
        20
    kingme  
       2018-08-31 16:54:28 +08:00
    @tiaod #10 这个图用哪个软件画的啊
    tiaod
        21
    tiaod  
    OP
       2018-08-31 16:55:54 +08:00
    @kingme 官方文档的截图
    glues
        22
    glues  
       2018-08-31 16:58:38 +08:00 via iPhone
    3 年起步,lz 可以试试,前两天看知乎听说里面伙食不错
    CrownLeo
        23
    CrownLeo  
       2018-08-31 21:35:27 +08:00 via Android
    做过网易云信 IM WEB 的开发,你需要云信的 appkey,自己用户的 accoutId, 还有一个 token 吧,后两者是服务端 SDK 签发的,这样理论上就可以自己做一个客户端了
    tiaod
        24
    tiaod  
    OP
       2018-08-31 21:59:45 +08:00 via Android
    @CrownLeo 所以需要抓包分析他们自己的应用服务器的 API,这种操作是侵权的
    a793657136
        25
    a793657136  
       2018-08-31 22:09:57 +08:00 via Android
    Android 端,首先在 manifest.xml 注册云信的 service,加入 appkey,但是网易应用网站上有包名检测,包名对不上的可以开禁止登录,这一个过去后,登录是 app 自己的账号密码,然后在云信上获取 token,所以要知道 app 本身的注册和登录 api,验证什么的,其他获取好友列表,聊天都是云信 sdk 了。所以最少要知道 appkey,包名要一致,登录和注册的 api 和验证方式要知道,这应该是跟别人聊天的必要条件
    CrownLeo
        26
    CrownLeo  
       2018-08-31 22:15:09 +08:00 via Android
    @tiaod 只在技术上讨论下可行性而已,因为自己做过类似的,所以也大致知道自己搭个客户端能做的事情😂
    aLazarus
        27
    aLazarus  
       2018-09-01 02:07:26 +08:00 via Android
    额…应该需要 key 一类的,还有 token 什么的吧…可能还有那种 ID,加密的方法都是在服务器…
    ctsed
        28
    ctsed  
       2018-09-01 02:13:58 +08:00 via Android
    建议锤子可以给自己发消息。再开放 api,向 pushbullet 学习,起码能用起来。
    akira
        29
    akira  
       2018-09-01 03:28:34 +08:00
    技术上而言,是的
    maplejaw
        30
    maplejaw  
       2018-09-01 07:22:27 +08:00 via Android
    appkey 会检验签名的
    pabupa
        31
    pabupa  
       2018-09-01 08:03:18 +08:00
    @justff 我也算上,我们仨对半分怎么样?
    ZaneCheney
        32
    ZaneCheney  
       2018-09-02 10:33:26 +08:00 via iPhone
    我就想问问这图啥软件画的😂
    Light3
        33
    Light3  
       2018-09-03 10:23:00 +08:00
    理论上是可以的 不过你需要知道人家的 appkey 啥的 你知道了 也就离要蹲不远了
    mengdisheng
        34
    mengdisheng  
       2018-09-04 10:12:44 +08:00
    😂 我做 im 的不想说话。。。这个贴在都是啥玩意儿。。。现在人都喜欢臆想么
    tiaod
        35
    tiaod  
    OP
       2018-09-04 13:49:17 +08:00 via Android
    @mengdisheng 那您有何高见?
    weishu
        36
    weishu  
       2018-09-04 17:49:57 +08:00
    APP KEY 在服务端,可以定期刷新,你这基本不可能实现。
    tiaod
        37
    tiaod  
    OP
       2018-09-04 18:10:51 +08:00
    @weishu 文档没有看到可以修改 AppKey 的接口,AppKey 应该是固定的。能刷新的是 Secret。客户端不需要关心 Secret 是否刷新
    enenaaa
        38
    enenaaa  
       2018-09-05 11:44:24 +08:00
    当然可以实现。 连 qq 模拟客户端都有。有啥搞不了的。
    tiaod
        39
    tiaod  
    OP
       2018-09-05 12:15:33 +08:00
    @enenaaa 就是嘛,而且有 SDK 可以用,还有文档可以参考
    surfish
        40
    surfish  
       2018-09-05 15:46:31 +08:00
    除非子弹短信自己开放第三方 API,否则逆向出来也很容易被封掉。
    Eugene1024
        41
    Eugene1024  
       2018-09-07 16:40:48 +08:00
    想的太简单
    Lostars
        42
    Lostars  
       2018-09-07 16:57:06 +08:00
    @glues 社会人告诉你上海里面的伙食非常差,一周七天只有两顿荤,其余都是白饭加没什么味道的菜;表现好每周可以逛一次监狱小卖部,里面有饼干泡面火腿饮料,真空包装的鸡鸭鱼肉,价格倒不贵。
    wizardforcel
        43
    wizardforcel  
       2018-09-17 21:10:02 +08:00 via Android
    我做过贴吧的,参与制作过豆瓣的。基于我的经验,我觉得逆向是可行的。

    以上。
    lshang
        44
    lshang  
       2018-10-09 14:05:57 +08:00
    第三方客户端,逆向肯定可以实现,但是实现之后呢?换了个壳而已,基于官方 API 也不能实现不添加好友强制聊天这种牛逼的功能,意义不大啊。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5166 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 03:45 · PVG 11:45 · LAX 20:45 · JFK 23:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.