source * [value] => * [callback_id] => classify|46 * [type] => interactive_message * [team] => stdClass Object * ( * [id] => {SLACKTEAM} * [domain] => {SLACKDOMAIN} * ) * [channel] => stdClass Object * ( * [id] => {SLACKCHANNEL} * [name] => directmessage * ) * [user] => stdClass Object * ( * [id] => {SLACKUSER} * [name] => {SLACKUSER} * ) * [action_ts] => 1603780652.484943 * [message_ts] => 1601349865.001500 * [attachment_id] => 3 * [token] => Oow8S2EFvrZoS9z8N4nwf9Jo */ class InteractiveMessage extends Base { protected const LOGKEY = 'OIM'; public function __get($key) { switch ($key) { case 'name': case 'value': case 'message_ts': return object_get($this->_data,$key); default: return parent::__get($key); } } /** * Interactive messages can return their output in the incoming HTTP post * * @return Message * @throws \Exception */ public function respond(): Message { Log::info(sprintf('%s:Interactive Option - Callback [%s] Name [%s] Value [%s]',static::LOGKEY,$this->callback_id,$this->name,$this->value),['m'=>__METHOD__]); if (preg_match('/^(.*)\|([0-9]+)/',$this->callback_id)) { [$action,$id] = explode('|',$this->callback_id,2); } else { // If we get here, its an action that we dont know about. Log::notice(sprintf('%s:Unhandled CALLBACK [%s]',static::LOGKEY,$this->callback_id),['m'=>__METHOD__]); } return (new Message)->blank(); } }