• 利用pyapns进行ios推送


    ios客户端的同事提供了2个证书,分别是aps_development.cer  和 pushdevelopment.p12, 我最终目的就是把这2个证书合并成1个pem证书,然后通过pyapns进行推送即可。
     
    首先把cer转换成pem格式
    openssl x509 -in aps_development.cer -inform der -out push_cert.pem
    然后把p12转换成pem格式
    openssl pkcs12 -in pushdevelopment.p12 -out push_key.pem -nodes
    在p12转换pem的过程中,会要求密码,直接跟ios开发同事索要就好了。
    现在有push_cert.pem push_key.pem这2个文件
    直接合并
    cat push_cert.pem push_key.pem > jt_develop.pem
    得到最终的证书,即jt_develop.pem
    现在测试是否可用
    openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert jt_develop.pem 
        0550 - a9 7e 39 27 21 8c f5 ac-e5 1d 23 6e 9f 97 78 e9   .~9'!.....#n..x.
        0560 - 15 a5 ee 2c b0 38 63 4e-29 32 04 d5 1e 1b ab 70   ...,.8cN)2.....p
        0570 - 46 c5 7a b6 cc 91 86 71-9e 6b 65 92 57 b2 a3 92   F.z....q.ke.W...
        0580 - 16 b7 bd f3 c3 38 75 65-da af e0 79 a3 8a b8 2f   .....8ue...y.../
        0590 - 2f 4d d0 de 3e 3c dd 4d-d8 89 3b b5 55 86 ca 14   /M..><.M..;.U...
        05a0 - c0 e3 95 4d 1f b3 69 62-32 7e 2d bd 02 62 8a e0   ...M..ib2~-..b..
        05b0 - ae 4d 1e c7 e7 5b 2b fe-5b a2 25 6e 0c 5f 90 f7   .M...[+.[.%n._..
        05c0 - 42 89 d6 dd 23 e1 14 7a-cc 0b ef 47 38 9c 8f 9c   B...#..z...G8...
        05d0 - 14 65 2e dd af b4 0a 30-59 46 dc ae d6 e8 56 c9   .e.....0YF....V.
        05e0 - bb 45 d2 76 f7 31 ab 2c-a1 d1 f0 26 81 40 aa 8d   .E.v.1.,...&.@..
        05f0 - 0b 55 c7 56 a8 bd f1 24-5f d0 07 8f 42 b5 57 98   .U.V...$_...B.W.
        0600 - d8 29 1c 43 90 b4 64 f4-46 47 05 07 5c 7a 35 a8   .).C..d.FG..\z5.
        0610 - 7d e6 03 ae 56 e0 0e 71-cf e0 5d 58 f5 b1 97 05   }...V..q..]X....
        0620 - 1b 96 b0 a1 83 f8 25 4b-0c 89 11 c8 41 c9 05 10   ......%K....A...
        0630 - 0f 7a ca 74 b8 ec f0 6f-e9 cf 75 6a 93 91 9d 5b   .z.t...o..uj...[
    
        Start Time: 1458799238
        Timeout   : 300 (sec)
        Verify return code: 0 (ok)
    --- 
    貌似是可以的,具体怎么验证呢?
    python用户直接用pyapns
    下面就简单介绍以下pyapns
    pyapns是基于twisted写的一个ios推送神器,它帮你跟苹果的推送服务器连接,你每次需要推送的时候,直接用http请求即可。
    首先,到github上看它的简单介绍。https://github.com/samuraisam/pyapns
    搜索的时候,不要搜错了,是samuraisam的。
    由于是基于twisted的,所以首先安装twisted
    pip install twisted
    然后安装pyapns
    pip install pyapns

    中间可能需要安装其他库,总之缺少什么就安装什么。

    其次,启动服务,非常简单。一句命令:
    twistd -r epoll web --class=pyapns.server.APNSServer --port=7077

    这样就启动了,运用的时候,直接像它介绍的,就几条命令

    from pyapns import configure, provision, notify
    configure({'HOST': 'http://localhost:7077/'})
    provision('com.test1.ddd', open('jt_develop.pem').read(), 'sandbox')
    notify('com.test1.ddd', 'hexlified_token_str', {'aps':{'alert': 'Hello!'}})
    每句代码都解释一下:
    第一行,这不要讲了,导入3个变量
    第二行,configure一下,就是说,刚才的pyapns是装在哪台服务器的哪个端口的,我用默认的,就是'http://localhost:7077',如果你用在其他服务器上,自己修改一下。
    第三行,打开证书,第一个参数,是app_id,这个不能乱填,要跟你的ios同事要;第二个参数,是上面合成的证书,打开的文件标识符;第三个参数,如果是开发环境,就用sandbox,如果是生产环境,就用production。千万不要弄错哦。
    第四行,发送通知,第一个参数还是app_id,跟上面一样;第二个参数是device_token,每个ios系统都有唯一的一个device_token,这个可以跟ios开发的同事索要。在正式环境下,一般每次登录的时候,都要求客户端上传上来。第三个参数是具体的内容,是字典形式,里面还可以加入badge等内容。详细的可以观看文档。
     
    成功不成功,就看看客户端有没有吧。
  • 相关阅读:
    二叉树
    树的存储表示
    Jarvis OJ | WEB
    xctf | pwn进阶
    《C++Primer Plus》 | 处理数据
    xctf---stack2 | gdb&IDA 调试
    IDA | Windows主机与Ubuntu 16.04远程调试
    ROP | 中级
    IDA | 窗口
    epub reading
  • 原文地址:https://www.cnblogs.com/yueerwanwan0204/p/5315114.html
Copyright © 2020-2023  润新知