LINE Bot SDK PHPのversion 3.6.0は4年前のバージョンで、最新は7.3.1のようです。 少し前にこのAPIはendpointが変わっていて、SDK側もその対応をしていると思うので、 一度SDKのバージョンをあげてみてはいかがでしょうか?
前提・実現したいこと
リッチメニューに画像を添付したい。
発生している問題・エラーメッセージ
リッチメニューに画像を添付するためにLINEBot->uploadRichMenu()を用いているが、レスポンスのhttpStatusが404となっている。
LINE\LINEBot\Response Object
(
[httpStatus:LINE\LINEBot\Response:private] => 404
[body:LINE\LINEBot\Response:private] =>
[headers:LINE\LINEBot\Response:private] => Array
(
[server] => legy
)
)
該当のソースコード
$http_client = new CurlHTTPClient($this->channel_access_token);
$bot = new LINEBot($http_client, ['channelSecret' => $this->channel_secret]);
// ...snip...
$richMenu = new RichMenuBuilder(
RichMenuSizeBuilder::getFull(),
true, // デフォルトでメニューを表示l
'menu_' . $line_user_id,
'メニュー',
[
// ...snip...
]
);
$res = $bot->createRichMenu($richMenu);
Log::debug('res: ' . print_r($res, true));
if (!$res instanceof Response) {
Log::error('bad response.');
return;
}
$body = $res->getJSONDecodedBody();
Log::debug('body: ' . print_r($body, true));
if (!is_array($body) || is_null($body['richMenuId'])) {
Log::error('bad body.');
return;
}
$rich_menu_id = $body['richMenuId'];
Log::debug("uploadRichMenuImage('$rich_menu_id', ...)");
$res = $bot->uploadRichMenuImage($rich_menu_id, public_path() . '/line/richmenu_1651798295263.jpg', 'image/jpeg');
Log::debug('res: ' . print_r($res, true));
試したこと
画像アップロードの場合の接続先はその他のAPIと異なるので、画像アップロード用の$httpClientと$botを用意する必要がありそうに思うが、その方法がわからない。
補足情報(FW/ツールのバージョンなど)
line-bot-sdk version 3.6.0を使用しています。