-
Notifications
You must be signed in to change notification settings - Fork 30
Send API
Romain Monteil edited this page Mar 19, 2017
·
11 revisions
$messenger->send()->message(<USER_ID>, 'Hello world!');use Kerox\Messenger\Model\Message;
use Kerox\Messenger\Model\Message\QuickReply;
$message = new Message('Pick a color:');
$message
->setQuickReplies([
(new QuickReply('text'))
->setTitle('Red')
->setPayload('DEVELOPER_DEFINED_PAYLOAD_FOR_PICKING_RED')
->setImageUrl('http://petersfantastichats.com/img/red.png'),
(new QuickReply('text'))
->setTitle('Green')
->setPayload('DEVELOPER_DEFINED_PAYLOAD_FOR_PICKING_GREEN')
->setImageUrl('http://petersfantastichats.com/img/green.png')
])
->addQuickReply(new QuickReply('location'))
->setMetadata('some metadata');
$messenger->send()->message(<USER_ID>, $message);use Kerox\Messenger\Model\Common\Address;
use Kerox\Messenger\Model\Message\Attachment\Template\Element\ReceiptElement;
use Kerox\Messenger\Model\Message\Attachment\Template\Receipt;
use Kerox\Messenger\Model\Message\Attachment\Template\Receipt\Adjustment;
use Kerox\Messenger\Model\Message\Attachment\Template\Receipt\Summary;
$elements = [
(new ReceiptElement('Classic White T-Shirt', 50))
->setSubtitle('100% Soft and Luxurious Cotton')
->setQuantity(2)
->setCurrency('USD')
->setImageUrl('http://petersapparel.parseapp.com/img/whiteshirt.png'),
(new ReceiptElement('Classic Gray T-Shirt', 25))
->setSubtitle('100% Soft and Luxurious Cotton')
->setQuantity(1)
->setCurrency('USD')
->setImageUrl('http://petersapparel.parseapp.com/img/grayshirt.png'),
];
$summary = new Summary(56.14);
$summary
->setSubtotal(75.00)
->setShippingCost(4.95)
->setTotalTax(6.19);
$receipt = new Receipt('Stephane Crozatier', '12345678902', 'USD', 'Visa 2345', $elements, $summary);
$receipt
->setTimestamp('1428444852')
->setOrderUrl('http://petersapparel.parseapp.com/order?order_id=123456')
->setAddress(new Address('1 Hacker Way', 'Menlo Park', '94025', 'CA', 'US'))
->setAdjustments([
(new Adjustment())->setName('New Customer Discount')->setAmount(20),
(new Adjustment())->setName('$10 Off Coupon')->setAmount(10),
]);
$messenger->send()->message(<USER_ID>, $receipt);use Kerox\Messenger\Model\Message\Attachment\Template\Airline\Airport;
use Kerox\Messenger\Model\Message\Attachment\Template\Airline\BoardingPass;
use Kerox\Messenger\Model\Message\Attachment\Template\Airline\FlightInfo;
use Kerox\Messenger\Model\Message\Attachment\Template\Airline\FlightSchedule;
use Kerox\Messenger\Model\Message\Attachment\Template\AirlineBoardingPass;
$departureAirport = (new Airport('JFK', 'New York'))->setTerminal('T1')->setGate('D57');
$arrivalAirport = new Airport('AMS', 'Amsterdam');
$flightSchedule = (new FlightSchedule('2016-01-02T19:05'))->setArrivalTime('2016-01-05T17:30');
$flightInfo = new FlightInfo('KL0642', $departureAirport, $arrivalAirport, $flightSchedule);
$boardingPass1 = new BoardingPass('Smith Nicolas', 'CG4X7U', 'https://www.example.com/en/logo.png', 'M1SMITH NICOLAS CG4X7U nawouehgawgnapwi3jfa0wfh', 'https://www.example.com/en/PLAT.png', $flightInfo);
$boardingPass1
->setTravelClass('business')
->setSeat('74J')
->addAuxiliaryFields('Terminal', 'T1')
->addAuxiliaryFields('Departure', '30OCT 19:05')
->addSecondaryFields('Boarding', '18:30')
->addSecondaryFields('Gate', 'D57')
->addSecondaryFields('Seat', '74J')
->addSecondaryFields('Sec.Nr.', '003')
->setHeaderImageUrl('https://www.example.com/en/fb/header.png');
$boardingPass2 = new BoardingPass('Jones Farbound', 'CG4X7U', 'https://www.example.com/en/logo.png', 'M1JONES FARBOUND CG4X7U nawouehgawgnapwi3jfa0wfh', 'https://www.example.com/en/PLAT.png', $flightInfo);
$boardingPass2
->setTravelClass('business')
->setSeat('74K')
->addAuxiliaryFields('Terminal', 'T1')
->addAuxiliaryFields('Departure', '30OCT 19:05')
->addSecondaryFields('Boarding', '18:30')
->addSecondaryFields('Gate', 'D57')
->addSecondaryFields('Seat', '74K')
->addSecondaryFields('Sec.Nr.', '004')
->setHeaderImageUrl('https://www.example.com/en/fb/header.png');
$boardingPass = [
$boardingPass1,
$boardingPass2,
];
$airlineBoardingPass = new AirlineBoardingPass('You are checked in.', 'en_US', $boardingPass);
$airlineBoardingPass->setThemeColor('#FF0000');
$messenger->send()->message(<USER_ID>, $airlineBoardingPass);use Kerox\Messenger\Model\Message\Attachment\Template\Airline\Airport;
use Kerox\Messenger\Model\Message\Attachment\Template\Airline\FlightInfo;
use Kerox\Messenger\Model\Message\Attachment\Template\Airline\FlightSchedule;
use Kerox\Messenger\Model\Message\Attachment\Template\AirlineCheckIn;
$departureAirport = (new Airport('SFO', 'San Francisco'))
->setTerminal('T4')
->setGate('G8');
$arrivalAirport = (new Airport('SEA', 'Seattle'))
->setTerminal('T4')
->setGate('G8');
$flightSchedule = (new FlightSchedule('2016-01-05T15:45'))
->setArrivalTime('2016-01-05T17:30')
->setBoardingTime('2016-01-05T15:05');
$flightInto = [
new FlightInfo('f001', $departureAirport, $arrivalAirport, $flightSchedule)
];
$airlineCheckIn = new AirlineCheckIn('Check-in is available now.', 'en_US', 'ABCDEF', $flightInto, 'https://www.airline.com/check-in');
$messenger->send()->message(<USER_ID>, $airlineCheckIn);use Kerox\Messenger\Model\Message\Attachment\Template\Airline\Airport;
use Kerox\Messenger\Model\Message\Attachment\Template\Airline\ExtendedFlightInfo;
use Kerox\Messenger\Model\Message\Attachment\Template\Airline\FlightInfo;
use Kerox\Messenger\Model\Message\Attachment\Template\Airline\FlightSchedule;
use Kerox\Messenger\Model\Message\Attachment\Template\Airline\PassengerInfo;
use Kerox\Messenger\Model\Message\Attachment\Template\Airline\PassengerSegmentInfo;
use Kerox\Messenger\Model\Message\Attachment\Template\AirlineItinerary;
$departureAirport1 = (new Airport('SFO', 'San Francisco'))->setTerminal('T4')->setGate('G8');
$departureAirport2 = (new Airport('SLC', 'Salt Lake City'))->setTerminal('T1')->setGate('G33');
$arrivalAirport1 = (new Airport('SLC', 'Salt Lake City'))->setTerminal('T4')->setGate('G8');
$arrivalAirport2 = (new Airport('AMS', 'Amsterdam'))->setTerminal('T1')->setGate('G33');
$flightSchedule1 = (new FlightSchedule('2016-01-02T19:45'))->setArrivalTime('2016-01-02T21:20');
$flightSchedule2 = (new FlightSchedule('2016-01-02T22:45'))->setArrivalTime('2016-01-03T17:20');
$passengerInfo = [
(new PassengerInfo('p001', 'Farbound Smith Jr'))->setTicketNumber('0741234567890'),
(new PassengerInfo('p002', 'Nick Jones'))->setTicketNumber('0741234567891'),
];
$flightInfo = [
(new ExtendedFlightInfo('c001', 's001', 'KL9123', $departureAirport1, $arrivalAirport1, $flightSchedule1, TravelClassInterface::BUSINESS))->setAircraftType('Boeing 737'),
(new ExtendedFlightInfo('c002', 's002', 'KL321', $departureAirport2, $arrivalAirport2, $flightSchedule2, TravelClassInterface::BUSINESS))->setAircraftType('Boeing 747-200'),
];
$passengerSegmentInfo = [
new PassengerSegmentInfo('s001', 'p001', '12A', 'Business'),
new PassengerSegmentInfo('s001', 'p002', '12B', 'Business'),
(new PassengerSegmentInfo('s002', 'p001', '73A', 'World Business'))
->addProductInfo('Lounge', 'Complimentary lounge access')
->addProductInfo('Baggage', '1 extra bag 50lbs'),
(new PassengerSegmentInfo('s002', 'p002', '73B', 'World Business'))
->addProductInfo('Lounge', 'Complimentary lounge access')
->addProductInfo('Baggage', '1 extra bag 50lbs'),
];
$airlineItinerary = new AirlineItinerary('Here\'s your flight itinerary.', 'en_US', 'ABCDEF', $passengerInfo, $flightInfo, $passengerSegmentInfo, '14003', 'USD');
$airlineItinerary
->addPriceInfo('Fuel surcharge', '1597', 'USD')
->setBasePrice('12206')
->setTax('200');
$messenger->send()->message(<USER_ID>, $airlineItinerary);