|
| 1 | +<?php |
| 2 | + |
| 3 | +/** |
| 4 | + * BMS 자유형 CAROUSEL_FEED 타입 발송 예제 |
| 5 | + * 여러 카드를 좌우로 슬라이드하는 캐러셀 피드 메시지입니다. |
| 6 | + * fileType은 'BMS_CAROUSEL_FEED_LIST'를 사용해야 합니다 (2:1 비율 이미지 필수). |
| 7 | + * head 없이 2-6개 아이템, head 포함 시 1-5개 아이템이 가능합니다. |
| 8 | + */ |
| 9 | + |
| 10 | +require_once dirname(__DIR__) . '/vendor/autoload.php'; |
| 11 | + |
| 12 | +use Nurigo\Solapi\Models\Kakao\Bms\BmsButton; |
| 13 | +use Nurigo\Solapi\Models\Kakao\Bms\BmsCarousel; |
| 14 | +use Nurigo\Solapi\Models\Kakao\Bms\BmsCarouselFeedItem; |
| 15 | +use Nurigo\Solapi\Models\Kakao\Bms\BmsCarouselTail; |
| 16 | +use Nurigo\Solapi\Models\Kakao\Bms\BmsChatBubbleType; |
| 17 | +use Nurigo\Solapi\Models\Kakao\KakaoBms; |
| 18 | +use Nurigo\Solapi\Models\Kakao\KakaoOption; |
| 19 | +use Nurigo\Solapi\Models\Message; |
| 20 | +use Nurigo\Solapi\Services\SolapiMessageService; |
| 21 | + |
| 22 | +$messageService = new SolapiMessageService('ENTER_YOUR_API_KEY', 'ENTER_YOUR_API_SECRET'); |
| 23 | + |
| 24 | +$imageId = $messageService->uploadFile(__DIR__ . '/images/example-2to1.jpg', 'BMS_CAROUSEL_FEED_LIST'); |
| 25 | + |
| 26 | +$button1 = new BmsButton(); |
| 27 | +$button1->setLinkType('WL') |
| 28 | + ->setName('레시피 보기') |
| 29 | + ->setLinkMobile('https://example.com/recipe1'); |
| 30 | + |
| 31 | +$item1 = new BmsCarouselFeedItem(); |
| 32 | +$item1->setHeader('오늘의 브런치 레시피') |
| 33 | + ->setContent('15분 만에 완성하는 아보카도 토스트! 간단하지만 영양 만점이에요.') |
| 34 | + ->setImageId($imageId) |
| 35 | + ->setButtons([$button1]); |
| 36 | + |
| 37 | +$button2 = new BmsButton(); |
| 38 | +$button2->setLinkType('WL') |
| 39 | + ->setName('영상 보기') |
| 40 | + ->setLinkMobile('https://example.com/recipe2'); |
| 41 | + |
| 42 | +$item2 = new BmsCarouselFeedItem(); |
| 43 | +$item2->setHeader('홈카페 꿀팁') |
| 44 | + ->setContent('집에서 바리스타처럼! 라떼 아트 도전해보세요.') |
| 45 | + ->setImageId($imageId) |
| 46 | + ->setButtons([$button2]); |
| 47 | + |
| 48 | +$tail = new BmsCarouselTail(); |
| 49 | +$tail->setLinkMobile('https://example.com/more'); |
| 50 | + |
| 51 | +$carousel = new BmsCarousel(); |
| 52 | +$carousel->setList([$item1, $item2]) |
| 53 | + ->setTail($tail); |
| 54 | + |
| 55 | +$bms = new KakaoBms(); |
| 56 | +$bms->setTargeting('I') |
| 57 | + ->setChatBubbleType(BmsChatBubbleType::CAROUSEL_FEED) |
| 58 | + ->setCarousel($carousel); |
| 59 | + |
| 60 | +$kakaoOption = new KakaoOption(); |
| 61 | +$kakaoOption->setPfId('연동한 비즈니스 채널의 pfId') |
| 62 | + ->setBms($bms); |
| 63 | + |
| 64 | +$message = new Message(); |
| 65 | +$message->setTo('수신번호') |
| 66 | + ->setFrom('발신번호') |
| 67 | + ->setType('BMS_FREE') |
| 68 | + ->setKakaoOptions($kakaoOption); |
| 69 | + |
| 70 | +try { |
| 71 | + $response = $messageService->send($message); |
| 72 | + print_r($response); |
| 73 | +} catch (Exception $e) { |
| 74 | + echo "Error: " . $e->getMessage(); |
| 75 | +} |
0 commit comments