LINE BOTを使ってみよう。 (CallBackプログラム:画像送信編)

2018-05-11PHP

今回は画像の送信を行います。

画像送信

画像を送信するには、2種類のサイズの画像を用意する必要があります。
サイズは以下の2種類です。

最大画像サイズ:1024×1024
最大画像サイズ:240×240

ファイル容量は2つとも1MB以下という制約があります。
また、画像の種類はjpgのみです。

イベントオブジェクト

{
    "to": 送信したい相手のユーザID,
    "messages":[
        {
		"type"               => "image",
		"originalContentUrl" => 1024×1024 サイズのファイルパス,
		"previewImageUrl"    => 240×240 サイズのファイルパス
        }
    ]
}

APIは、テキスト送信と同じものを使用しています。
単純にオブジェクトのタイプが変わるだけのようです。

サンプルソース

// メッセージ
$messeage_data = [
	"type" => "text",
	"text" => $message
];
// 画像
$picture_data = [
	"type"               => "image",
	"originalContentUrl" => 大きい方のファイルパス,
	"previewImageUrl"    => 小さい方のファイルパス
];

// ポストデータ
$post_data = [
	"to"       => $user_id,
	"messages" => [ $messeage_data, $picture_data ]
];

// curl実行
$ch = curl_init("https://api.line.me/v2/bot/message/push");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode( $post_data, JSON_UNESCAPED_UNICODE ));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
	'Content-Type: application/json; charser=UTF-8',
	'Authorization: Bearer ' . 自分のアクセストークン
));
$result = curl_exec($ch);
$result = json_decode($result);
curl_close($ch);

if( isset($result->message) ){
	// エラー処理: $result->messageにエラーメッセージが入っている。
}

画像送信処理の基本はこのような感じです。
次は、送られてきた画像の受信処理を作っていくことにします。

[前の記事]LINE BOTを使ってみよう。 (CallBackプログラム:スタンプ送信編)
[次の記事]LINE BOTを使ってみよう。 (Failed to send messages)