leochien/laravel-notification-channel-line 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

leochien/laravel-notification-channel-line

最新稳定版本:1.3.0

Composer 安装命令:

composer require leochien/laravel-notification-channel-line

包简介

LINE Notifications Channel for Laravel

README 文档

README

Latest Version on Packagist Software License Total Downloads

Introduction

This package makes it easy to send notifications using LINE with Laravel 5.6+.

Contents

Installation

You can install the package via composer:

$ composer require leochien/laravel-notification-channel-line

Setting up the LINE service

In order to send message to LINE channels, you need to obtain Messaging API overview.

Add your LINE Message API Token to your config/services.php:

// config/services.php
...
'line_message_api' => [
    'token' => env('LINE_MESSAGE_TOKEN', 'YOUR MESSAGE TOKEN HERE'),
],
...

Usage

Text Message

Reference: Text Message You can use the channel in your via() method inside the notification:

use Illuminate\Notifications\Notification;
use LeoChien\LaravelNotificationChannelLine\LineMessage;
use LeoChien\LaravelNotificationChannelLine\LineWebhookChannel;

class TaskCompleted extends Notification
{
    public function via($notifiable): array
    {
        return [
            'line',
        ];
    }

    public function toLine($notifiable): LineMessage
    {
        return LineMessage::create()
            ->to('line_user_id')
            ->from('message_api_token') // optional if set in config
            ->content('Test message');
    }
}

Available methods

create(): Initial a message instance.

from(): Optional. Sets the sender's access token. Default to the set in config.

to(): Required. Specifies the line user id to send the notification to.

content(): Required. Sets a content of the notification message. Only support plain text for now.

Template Messages

Reference: Template messages

Currently, only 'buttons' and 'confirm' template types are supported. We will update to support 'carousel' and 'image carousel' as soon as possible.

use Illuminate\Notifications\Notification;
use LeoChien\LaravelNotificationChannelLine\LineTemplateMessage;
use LeoChien\LaravelNotificationChannelLine\LineWebhookChannel;

class TaskCompleted extends Notification
{
    public function via($notifiable): array
    {
        return [
            'line',
        ];
    }

    public function toLine($notifiable): LineMessage
    {
        return LineTemplateMessage::create()
            ->to('line_user_id')
            ->from('message_api_token') // optional if set in config
            ->type('buttons')
            ->thumbnailImageUrl('https://fakeimg.pl/350x200')
            ->text("This is the text of the message")
            ->actions([
                [
                    'type' => 'uri',
                    'label' => 'See more',
                    'uri' => 'https://example.com',
                ],
            ]);
    }
}

Available methods

from(): Sets the sender's access token.

to(): Specifies the line user id to send the notification to.

type(): Required. template type, allowed value: buttons, confirm, carousel, image_carousel.

thumbnailImageUrl(): Optional. Image URL (Max character limit: 2000). Protocol: HTTPS (TLS 1.2 or later). Image format: JPEG or PNG. Max width: 1024px. Max file size: 10 MB.

imageAspectRatio(): Optional. Aspect ratio of the image. Allowed values: rectangle(1.51:1), square(1:1). Default: rectangle.

imageSize(): Optional. Size of the image. Allowed Values: cover, contain. Default: cover.

imageBackgroundColor(): Optional. Background color of the image. Specify a RGB color value. Default: #FFFFFF (white)

title(): Optional. Message Title, max character limit: 40.

text(): Required. Message text, max character limit: 160 (no image or title), max character limit: 60 (message with an image or title).

defaultAction(): Optional. Action when image, title or text area is tapped.

actions(): Required. Action when tapped, max objects: 4.

Flex Messages

Reference: Flex messages

Flex messages allow you to create richly laid out messages that can contain combinations of text, buttons, images, and more, arranged in a flexible layout.

use Illuminate\Notifications\Notification;
use LeoChien\LaravelNotificationChannelLine\LineFlexMessage;
use LeoChien\LaravelNotificationChannelLine\LineWebhookChannel;

class TaskCompleted extends Notification
{
    public function via($notifiable): array
    {
        return [
            'line',
        ];
    }

    public function toLine($notifiable): LineMessage
    {
        return LineFlexMessage::create()
            ->to('line_user_id')
            ->from('message_api_token') // optional if set in config
            ->altText('This is a Flex Message')
            ->contents([
                'type' => 'bubble',
                'body' => [
                    'type' => 'box',
                    'layout' => 'vertical',
                    'contents' => [
                        [
                            'type' => 'text',
                            'text' => 'Hello, World!',
                            'weight' => 'bold',
                            'size' => 'xl'
                        ],
                        [
                            'type' => 'box',
                            'layout' => 'vertical',
                            'margin' => 'lg',
                            'spacing' => 'sm',
                            'contents' => [
                                [
                                    'type' => 'text',
                                    'text' => 'This is a Flex Message',
                                    'color' => '#aaaaaa',
                                    'size' => 'sm',
                                    'flex' => 1
                                ]
                            ]
                        ]
                    ]
                ],
                'footer' => [
                    'type' => 'box',
                    'layout' => 'vertical',
                    'spacing' => 'sm',
                    'contents' => [
                        [
                            'type' => 'button',
                            'style' => 'primary',
                            'action' => [
                                'type' => 'uri',
                                'label' => 'Go to Website',
                                'uri' => 'https://example.com'
                            ]
                        ]
                    ]
                ]
            ]);
    }
}

Available methods

from(): Optional. Sets the sender's access token. Default to the set in config.

to(): Required. Specifies the line user id to send the notification to.

altText(): Required. Alternative text for devices that don't support Flex Message.

contents(): Required. The JSON object that defines the layout and content of the Flex Message.

Security

If you discover any security related issues, please email s950329@hotmail.com instead of using the issue tracker.

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.

统计信息

  • 总下载量: 2.08k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-10-08