Q&A

webhookで取得した、ファイル名の取得方法について

前提・実現したいこと

LINEからファイルを送った場合に、画像名を取得する方法はないでしょうか?

発生している問題・エラーメッセージ

PHPで開発しており、line-bot-sdk-phpを利用してます。 ファイルの種類等は取得できるのですがファイル名が取得できません。

該当のソースコード

本当によくあるソースコードです。

$httpClient = new \LINE\LINEBot\HTTPClient\CurlHTTPClient(ACCESS_TOKEN); $bot = new \LINE\LINEBot($httpClient, ['channelSecret' => SECRET_TOKEN]); $event = $json->events[0]; if ($event->type == 'message') { $messageData = $event->message; if ($messageData->type == 'text') {

} else if ($messageData->type == 'image') {
	//画像の名前を取得したい
	$response = $bot->getMessageContent($messageData->id);

	if ($response->isSucceeded()) {
	
		//画像のheader情報(種類など)は取得できます。
		$headers = $response->getHeaders();
		
		//コンテンツにはこのメソッドは使えないのでしょうか。。
		$json = $response->getJSONDecodedBody();

		//画像のデータは取得できます。
		$tempfile = tmpfile();
		fwrite($tempfile, $response->getRawBody());

	} else {
		error_log($response->getHTTPStatus() . ' ' . $response->getRawBody());
	}
}

}

botチャットを作ってるのですが、元のファイル名でファイルは保存したいです。 お詳しい方何卒よろしくお願いいたします。

  • 0
  • 1
  • 689
  • twitter facebook

ファイル名は取得できない気がするので、メッセージIDでファイル名を保存するやり方がいいかなと思います…

  • 0
Are you sure? question.vm