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

OpenShare:不用 QQ、微信、微博等社交网络官方 SDK,实现分享&登录的开源项目,求关注,求 star

  •  1
     
  •   marginleft ·
    100apps · 2015-05-22 11:58:04 +08:00 · 7105 次点击
    这是一个创建于 3260 天前的主题,其中的信息可能已经有所发展或是发生改变。

    做公司iOS app的时候,需要把单品页分享到社交网络,按照传统的步骤,去申请key,下载官方SDK和Demo,然后跑一下,去改造自己的app。这样不仅增大了app的体积(光SDK都比我自己的app大了),而且每个平台自己的SDK用法不统一,很零散。于是自己研究了一下各个SDK和官方客户端通信的数据格式,封装了一下,成了OpenShare。目前只支持iOS平台(android正在筹划中),支持CocoaPods。代码只有几百行,目前支持微博、微信、QQ、人人。即使不在自己的项目中使用,也可以clone下来研究一下app之间的通信,所以给个star是很有必要的(^_^)。

    Github地址:https://github.com/100apps/openshare
    整个hack过程已经写到我的博客了:http://www.gfzj.us/series/openshare/

    欢迎使用:
    pod 'OpenShare'

    楼主只是一个iOS新人,属于半路出家型,代码写的不好,如果有改进的想法请务必留言或者发邮件给我。如果您能「Pull Requests」,想必也是极好的。

    30 条回复    2018-05-10 12:27:13 +08:00
    cielpy
        1
    cielpy  
       2015-05-22 12:09:04 +08:00
    感谢已发送,回头试用一下。
    WildCat
        2
    WildCat  
       2015-05-22 12:15:44 +08:00
    太棒了,支持!
    Kai
        3
    Kai  
    MOD
       2015-05-22 12:18:37 +08:00
    moved to /go/create
    mthli
        4
    mthli  
       2015-05-22 12:21:41 +08:00 via Android
    不错,希望尽快支持Android~
    yautou
        5
    yautou  
       2015-05-22 12:31:33 +08:00
    感谢分享,减少轮子好顶赞!
    lincanbin
        6
    lincanbin  
       2015-05-22 12:36:27 +08:00
    hack意味着可能随时失效吧?
    我先去看看你是怎么实现的。
    zooooom
        7
    zooooom  
       2015-05-22 12:55:14 +08:00
    感谢,学习一下了
    marginleft
        8
    marginleft  
    OP
       2015-05-22 12:56:12 +08:00
    @lincanbin 确实有失效的风险。「协议」是遵循了SDK的最新版本,如果失效了,有很大的可能这个版本的官方SDK也失效了。目前来看,各家的协议都比较简单,所以希望可以撑一段时间。另外,我感觉这个跟「破解」有区别,暂时还找不出官方封掉的理由。

    理想的状态是各大厂商能一块坐下来制定一个标准,不要各自为政,这样就不用每个平台下载一个SDK了。
    NUT
        9
    NUT  
       2015-05-22 13:15:05 +08:00
    学习了!
    missdeer
        10
    missdeer  
       2015-05-22 13:52:20 +08:00   ❤️ 1
    GPL v3,让人app还怎么上架啊
    black
        11
    black  
       2015-05-22 14:01:07 +08:00
    支持楼主,可是 GPL v3 让人望而却步。
    marginleft
        12
    marginleft  
    OP
       2015-05-22 14:40:19 +08:00
    @missdeer
    @black OpenShare的衍生物应该仅限于app的分享/登录功能,如果使用了OpenShare,应该把对OpenShare的改进开源出来,但是其他功能则不必。

    可以参考android :

    http://www.ifanr.com/92261

    我本意是这样的,不知道我理解的对不对,如果不对的话,请指正。或者实在不行,我改个协议得了,^_^。
    missdeer
        13
    missdeer  
       2015-05-22 15:06:52 +08:00
    @marginleft
    "一旦程序使用了 GPL 的模块,本身即被传染,程序必须成为 GPL。如果主程序与 GPL 类库是静态链接(Static Link)的关系,业界一般认为主程序必须限定为 GPL。"

    OpenShare应该适用这条。iOS是全静态链接吧?所以app也是GPL了。
    oott123
        14
    oott123  
       2015-05-22 15:13:40 +08:00
    @mthli 然而安卓用系统那个分享就行了……才没有 Apple 那么多事……
    w88975
        15
    w88975  
       2015-05-22 15:14:02 +08:00
    我以前也在windowsphone上写过一个 支持QQ 微博 QQ空间 腾讯微博 人人网 ,也是自己hack的协议
    sobigfish
        16
    sobigfish  
       2015-05-22 15:20:59 +08:00
    用iOS内置的话这样子不能显示来自哪。。也很不爽的
    mthli
        17
    mthli  
       2015-05-22 15:22:10 +08:00
    @oott123 不是呀,我看楼主这个貌似可以分享到微信朋友圈(?),我比较在意这个。
    oott123
        18
    oott123  
       2015-05-22 15:26:13 +08:00
    @mthli 系统自带那个不是也可以分享到朋友圈嘛……
    mthli
        19
    mthli  
       2015-05-22 15:28:53 +08:00
    @oott123 不可以的,可以分享到朋友圈的应用是使用了微信的SDK。而没有使用的应用只能发送给好友。
    marginleft
        20
    marginleft  
    OP
       2015-05-22 15:35:20 +08:00
    @w88975 赞!
    没有玩过windowsphone,求代码,交流一下。
    marginleft
        21
    marginleft  
    OP
       2015-05-22 15:37:51 +08:00
    @missdeer 多谢指导!看来和我最初想得不一样,待我周末研究一下各种协议,看看如何规避这个问题。
    marginleft
        22
    marginleft  
    OP
       2015-05-22 15:41:49 +08:00
    @oott123 我看了一下android系统自带的。一般分享功能确实够了,但是还有一些不足:
    1. 不支持登录
    2. 不能发送更复杂的类型,比如微信App类型的消息。

    看情况吧,如果仅用分享功能,而系统提供的够用,当然是最好不过了。
    oott123
        23
    oott123  
       2015-05-22 18:52:33 +08:00
    @mthli 我用系统的便签试了一下,分享菜单里有一个微信图标的[朋友],一个三种颜色盒子的[微信收藏]和一个朋友圈快门图标的[朋友圈],都是可用的……
    mthli
        24
    mthli  
       2015-05-22 18:57:42 +08:00 via Android
    @oott123 额,好吧...
    pythons
        25
    pythons  
       2015-05-22 21:55:46 +08:00
    代码精简下吧,太乱了。
    marginleft
        26
    marginleft  
    OP
       2015-05-22 22:02:39 +08:00 via iPhone
    @pythons 具体是哪些部分呢?我应该从哪里开始精简?比如?
    icylogic
        27
    icylogic  
       2015-05-22 22:21:14 +08:00
    http://image.beekka.com/blog/201105/free_software_licenses.png

    关于 License, 除了这张简单的分类图, 还可参考 QT for iOS 关于 License 的说明

    http://wiki.qt.io/Licensing-talk-about-mobile-platforms#Qt_for_iOS
    liuyihan
        28
    liuyihan  
       2015-05-23 09:49:06 +08:00
    顶楼主,非常好的集成,省去n多SDK。但是希望改下协议。。。不然不敢用
    marginleft
        29
    marginleft  
    OP
       2015-05-23 11:33:50 +08:00
    @icylogic 非常感谢,受益匪浅。
    idevhan
        30
    idevhan  
       2018-05-10 12:27:13 +08:00
    能 hook 一下微信分享,支持多图分享到微信就好啦。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4170 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 01:00 · PVG 09:00 · LAX 18:00 · JFK 21:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.