如果想在 V2EX 获得更好的推广效果,欢迎了解 PRO 会员机制:
https://v2ex.xtra.eu.org/pro/about

如果你经常使用铜币置顶主题,持有 V2EX Solana Token 会在每日签到时获得额外铜币:
https://v2ex.xtra.eu.org/solana
jpush
V2EX  ›  推广

Laravel 集成 JPush 极光推送指北

  •  
  •   jpush · May 19, 2017 · 3589 views
    This topic created in 3309 days ago, the information mentioned may be changed or developed.

    我是一个 Laravel 小白,我是一个 Laravel 小白,我是一个 Laravel 小白(默念三遍再往下读,如果非小白就不用看了)。

    Laravel 使用 Composer 来管理代码依赖。所以,在使用 Laravel 之前,请先确认你的电脑上安装了 Composer。

    这说明没有安装 Composer 就无法安装使用 Laravel。

    安装 Laravel

    1.使用 Composer 下载 Laravel 安装包:

    $ composer global require "laravel/installer"
    

    2.这时候会发现命令行找不到 laravel 命令

    not found !!

    那是因为 laravel 命令不在 PATH 路径下面,所以还需要将 ~/.composer/vendor/bin 路径加入到 PATH。 (这个路径是 Laravel 中文文档中说的,但我本机不同,我本机是 ~/.config/composer/vendor/bin

    found

    然后就找到了。

    到这里 Laravel 已经安装成功。

    3.创建一个新的 Laravel 项目:

    $ laravel new jpush-demo
    

    这个时候出了一些小故障,那是因为没有注意到,文档前面的几句话

    如果你没有使用 Homestead,你需要确保你的服务器上安装了下面的几个拓展:

    PHP >= 5.6.4
    OpenSSL PHP Extension
    PDO PHP Extension
    Mbstring PHP Extension
    Tokenizer PHP Extension
    XML PHP Extension
    

    lack

    是的,这些 PHP 拓展需要全部安装。(但我缺少的是 php-zip ,当然这不重要,缺什么安什么就行了)

    install

    OK, Let's build something amazing !

    集成 JPush PHP Api Cient

    看文档安装

    installation

    Done !

    配置

    新建 config/jpush.php 文件

    <?php
    return [
        'appKey' =>env('JPUSH_APP_KEY'),
        'masterSecret' =>env('JPUSH_MASTER_SECRET')
    ]
    

    不了解 env 是几个意思?可以看看这个先 http://d.laravel-china.org/docs/5.4/configuration

    测试

    然后就遇到了第一个问题

    problem

    即是 artisan 命令执行超时,解决这个问题之后开始测试(如果有人遇到并且无法解决,可以在评论区和我交流)

    1 先生成一个控制器

    $ php artisan make:controller JPushController --resource
    

    2 编辑 JPush 控制器的 index 方法

    # app/Http/Controllers/JPushController.php
    use JPush\Client as JPushClient;
    
    public function index() {
        $jpush = new JPushClient(config('jpush.appKey'), config('jpush.masterSecret'));
        $response = $jpush->push()
            ->setPlatform('all')
            ->addAllAudience()
            ->setNotificationAlert('hello tp3.2')
            ->send();
        print_r($response);
    }
    

    3 添加相应的路由

    # routes/web.php
    Route::get('jpush', 'JPushController@index');
    

    4 启动 Laravel 自带的服务器

    $ php artisan serve
    

    4 测试 终端下:

    $ curl http://127.0.0.1:8000/jpush

    浏览器中:

    http://127.0.0.1:8000/jpush

    注意: 这个是测试,所以各种逻辑全部写在了 Controller 当中, 当然了,对于小型项目来讲并没有什么问题,但是工程量一大问题就出现了。

    由于本人水平有限,此文难免出现一些错误或者不准确或者表达不好的地方,如有任何不对,恳请批评指正。


    作者:Helperhaps - 极光( JPush 为极光开发者团队账号,欢迎关注)

    原文:Laravel 集成 JPush 极光推送指北

    知乎专栏:极光日报

    2 replies    2017-05-22 14:06:46 +08:00
    icemanpro
        1
    icemanpro  
       May 19, 2017
    什么时候能支持推送到浏览器中?
    jpush
        2
    jpush  
    OP
       May 22, 2017
    @icemanpro 需要网页端的,建议使用 JMessage 的网页版
    https://docs.jiguang.cn/jmessage/client/im_sdk_js_v2/3
    可以间接实现
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3029 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 14:46 · PVG 22:46 · LAX 07:46 · JFK 10:46
    ♥ Do have faith in what you're doing.