V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jpush
V2EX  ›  推广

Laravel 集成 JPush 极光推送指北

  •  
  •   jpush · 2017-05-19 10:57:42 +08:00 · 2994 次点击
    这是一个创建于 2728 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我是一个 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 条回复    2017-05-22 14:06:46 +08:00
    icemanpro
        1
    icemanpro  
       2017-05-19 11:01:51 +08:00
    什么时候能支持推送到浏览器中?
    jpush
        2
    jpush  
    OP
       2017-05-22 14:06:46 +08:00
    @icemanpro 需要网页端的,建议使用 JMessage 的网页版
    https://docs.jiguang.cn/jmessage/client/im_sdk_js_v2/3
    可以间接实现
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5691 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:25 · PVG 15:25 · LAX 23:25 · JFK 02:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.