LINE BOT – PHP主動推送

主動推送訊息會消耗官方帳號的發訊息額度(免費的帳號一個月可以發200次)

簡單來講,一樣需要line 串接用的channelToken
另外除了 API 之外,需要使用到Client

<?php
require_once __DIR__ . '/vendor/autoload.php';   //第一篇LINE 有提供檔案

use GuzzleHttp\Client;
use LINE\Clients\MessagingApi\Configuration;
use LINE\Clients\MessagingApi\Api\MessagingApiApi;
use LINE\Clients\MessagingApi\Model\PushMessageRequest;
use LINE\Clients\MessagingApi\Model\TextMessage;
use LINE\Clients\MessagingApi\Model\ImageMessage;
use LINE\Clients\MessagingApi\Model\URIAction;
use LINE\Clients\MessagingApi\Model\MessageAction;
use LINE\Clients\MessagingApi\Model\TemplateMessage;
use LINE\Clients\MessagingApi\Model\ButtonsTemplate;


$client = new Client();
$config = new Configuration();
$config->setAccessToken($channelToken);
$messagingApi = new MessagingApiApi($client, $config);
// 假設你已從資料庫取得 userId (因為是非同步的,所以需要知道要傳送的那個人的userId)
$userId = $LINEUserId;

$msg = "這是測試用的";

$message[] = new TextMessage([
        'type' => 'text',
        'text' => $msg
    ]);


// 發送推送訊息
try {
    $response = $messagingApi->pushMessage($request);

} catch (\LINE\Clients\MessagingApi\ApiException $e) {
    error_log("Push message failed: Code=" . $e->getCode() . ", Body=" . $e->getResponseBody());
}
?>

發佈留言