viber-bot-php
viber-bot-php copied to clipboard
Не заполняется имя контакта
При получении данных контакта, заполняется только номер телефона. https://github.com/Bogdaan/viber-bot-php/blob/984b6bccd4956c60ae6ef35b57865278b86ba4aa/src/Api/Message/Contact.php#L104-L117
Да, похоже это баг - можете сделать PR ?
Да, но не в ближайшее время.
Проблема в конструкторе для класса Etinity. Если у дочернего класса есть свойство propertiesMap, то будут обрабатываться только те свойства для которых задан и имеет сеттер, прочие свойства будет игнорироваться.
Исправленный код ниже.
#44
Да, там есть обозначенная проблема в конструкторе, но по-хорошему нужно заменить полностью весь if на приведенный вариант.
Но это не решит проблему (там нет свойства contact). Там уже есть сеттер setConcat c опечаткой в имени, в который попадают данные, нужно просто их разобрать $this->name = $contact['name'];.
У меня сейчас нет возможности, плевое дело, постараюсь сделать позже...
Тут дело не только в отсутствии name. Cообщение типа Contact может себе содержать поле text. Туда, например, помещается содержимое ActionBody кнопки с типом share-phone. Поскольку ответ 'share-phone' не перехватывается OnText как в случае с 'reply' ибо типизируется как Contact, пришлось в наглую добавить для класса Contact свойства text, метод getText и изменить toArray.
Зачем? А что бы юзер в ответ на запрос собственного телефона не скинул произвольный контакт из телефонной книги в ActionBody кладу рандомный токен, а потом проверяю.