【開発者ブログ】PHPでLINE Messaging APIを使ってメッセージ送信してみた

こんにちは、開発部の久保見です。

今回は PHPでLINE Messaging APIを実装し、実際にメッセージを送信してみた手順をまとめます。

弊社では、新しいサービスとして LINEミニアプリを作成できる「アプリメンバーズ コネクト」をリリースしました。

LINEミニアプリは、LINEアプリ上で動作するWebシステムで、LINE公式アカウントと連携することも可能です(※必須ではありません)。

通常、情報配信に使うLINEメッセージは LINE公式アカウントの管理画面から送信しますが、もしアプリメンバーズ コネクトの管理画面から直接メッセージ送信ができれば、管理画面を行き来する手間を減らせそうです。

こうしたニーズに応える仕組みとして、LINE Messaging APIが提供されています。

事前準備

まずは、LINE Messaging APIを利用するためのSDKをインストールします。

composer require linecorp/line-bot-sdk

これでSDKのダウンロードは完了です。

composer が未インストールの場合は、https://getcomposer.org/download/を参照してください。

コーディング

続いて、実際のPHPコードです。

<?php
require_once __DIR__ . "/vendor/autoload.php";

use LINE\Clients\MessagingApi\Api\MessagingApiApi;
use LINE\Clients\MessagingApi\Configuration;
use LINE\Clients\MessagingApi\Model\PushMessageRequest;
use LINE\Clients\MessagingApi\Model\TextMessage;
use GuzzleHttp\Client;

$accessToken = 'YOUR_CHANNEL_ACCESS_TOKEN'; //チャネルアクセストークン
$userId = 'Uxxxxxxxxxxxxxxxxxxxx'; //ユーザーID

// --- Guzzle クライアントに Authorization ヘッダーを明示的にセット ---
$httpClient = new Client([
    'headers' => [
        'Authorization' => 'Bearer ' . $accessToken,
        'Content-Type' => 'application/json',
    ],
]);

// --- Configuration オブジェクト(空でも可) ---
$config = new Configuration();

// --- MessagingApiApi を Guzzle + Configuration で初期化 ---
$client = new MessagingApiApi($httpClient, $config);

// --- メッセージ作成 ---
$textMessage = new TextMessage([
    'type' => 'text',
    'text' => 'テスト送信!',
]);

$request = new PushMessageRequest([
    'to' => $userId,
    'messages' => [$textMessage],
]);

try {
    $response = $client->pushMessage($request);
    var_dump($response);
    echo "送信成功!";
} catch (\LINE\Clients\MessagingApi\ApiException $e) {
    echo "API Error: " . $e->getMessage();
    echo "\nResponse Body: " . $e->getResponseBody();
}

コードは以上です。

補足

・チャネルアクセストークン
LINE Developersサイトから発行できます。

・ユーザーID
LINE側が提供するLIFFを使って取得可能です。

本来は、アプリメンバーズ コネクトの管理画面にUIを用意し、そこからメッセージを送信する想定ですが、今回はデモのためPHPを直接実行しています。

実行結果はこちら

実際にコードを実行すると、LINEにメッセージが届きます。

注意点

最後に、実装時の注意点です。

  • SDKには複数のバージョンがあり、今回はv12系を使用しています。
  • Messaging APIはユーザーID1件につき1通信が必要な仕様です。
    (例:100人に送る場合は100通信、1000人なら1000通信)

そのため、数十万規模の大量配信を行う場合は、LINE公式アカウント管理画面の「一括配信」機能が最適です。

まとめ

今回は、PHPからLINE Messaging APIを使ってメッセージを送信する基本的な実装方法をご紹介しました。

アプリメンバーズ・アプリメンバーズ コネクトでは、現在も継続的に機能開発を行っています。

ご要望の機能追加やAPI連携のご相談がありましたら、ぜひお気軽にご連絡ください。

あわせて読みたい

お問合せ&資料請求