Регистрация  |  Вход

Google API в LWC

Вот и пришла наконец эта задача ко мне от реального заказчика. Надо запилить Google Address Autocomplete по типу того как работает стандартный Address Field компонент. Вот только заказчика не устраивает стандартный. Он хочет чтобы Autocomplete возвращал еще County и Apartments/Unit. Стандартный не может, а если работать напрямую с Google Places API то можно.

Я где-то полтора года назад когда возвращался из питона на SF пробовал замутить что-то похожее вокруг Google Maps API (https://salesforce-developer.ru/sozdaem- ... 02472762). Получилось даже но ценой немалых костылей. Вот думаю а что-нибудь поменялось за эти полтора года? Можно как-то загрузить и использовать Javascript от гугла в LWC?

У кого есть опыт поделитесь. Пока все что мне нужно это возможность загружить и использовать JS либы от гугла.
(через Static Resources не предлагать)
Вот и пришла наконец эта задача ко мне от реального заказчика. Надо запилить Google Address Autocomplete по типу того как работает стандартный Address Field компонент. Вот только заказчика не устраивает стандартный. Он хочет чтобы Autocomplete возвращал еще County и Apartments/Unit. Стандартный не может, а если работать напрямую с Google Places API то можно.

Я где-то полтора года назад когда возвращался из питона на SF пробовал замутить что-то похожее вокруг Google Maps API (https://salesforce-developer.ru/sozdaem-lwc-prilozhenie-chast-1-1649002472762). Получилось даже но ценой немалых костылей. Вот думаю а что-нибудь поменялось за эти полтора года? Можно как-то загрузить и использовать Javascript от гугла в LWC?

У кого есть опыт поделитесь. Пока все что мне нужно это возможность загружить и использовать JS либы от гугла. 
(через Static Resources не предлагать) 
Dmitry Shnyrev
Вот и пришла наконец эта задача ко мне от реального заказчика. Надо запилить Google Address Autocomplete по типу того как работает стандартный Address Field компонент. Вот только заказчика не устраивает стандартный. Он хочет чтобы Autocomplete возвращал еще County и Apartments/Unit. Стандартный не может, а если работать напрямую с Google Places API то можно.

Я где-то полтора года назад когда возвращался из питона на SF пробовал замутить что-то похожее вокруг Google Maps API (https://salesforce-developer.ru/sozdaem-lwc-prilozhenie-chast-1-1649002472762). Получилось даже но ценой немалых костылей. Вот думаю а что-нибудь поменялось за эти полтора года? Можно как-то загрузить и использовать Javascript от гугла в LWC?

У кого есть опыт поделитесь. Пока все что мне нужно это возможность загружить и использовать JS либы от гугла.
(через Static Resources не предлагать)

на сколько я помню, когда пробовал последний раз - гугл требует(или рекомендует) чтобы все его скрипты подключались только с домена самого гугла, то есть никаких скачиваний и добавлений в статик ресурсы.
а лцв требует наоборот - только статик ресурсы, ну или подключение напрямую в vf страницах.

но я вроде когда-то видел, что кто-то подгружал жс через жс. то есть создавали тег script src=google.blablabla в контроллере lwc. увы никогда не пробовал, было лень и не было надобности)
[quote="Dmitry Shnyrev"]Вот и пришла наконец эта задача ко мне от реального заказчика. Надо запилить Google Address Autocomplete по типу того как работает стандартный Address Field компонент. Вот только заказчика не устраивает стандартный. Он хочет чтобы Autocomplete возвращал еще County и Apartments/Unit. Стандартный не может, а если работать напрямую с Google Places API то можно.

Я где-то полтора года назад когда возвращался из питона на SF пробовал замутить что-то похожее вокруг Google Maps API (https://salesforce-developer.ru/sozdaem-lwc-prilozhenie-chast-1-1649002472762). Получилось даже но ценой немалых костылей. Вот думаю а что-нибудь поменялось за эти полтора года? Можно как-то загрузить и использовать Javascript от гугла в LWC?

У кого есть опыт поделитесь. Пока все что мне нужно это возможность загружить и использовать JS либы от гугла. 
(через Static Resources не предлагать) [/quote]

на сколько я помню, когда пробовал последний раз - гугл требует(или рекомендует) чтобы все его скрипты подключались только с домена самого гугла, то есть никаких скачиваний и добавлений в статик ресурсы.
а лцв требует наоборот - только статик ресурсы, ну или подключение напрямую в vf страницах.

но я вроде когда-то видел, что кто-то подгружал жс через жс. то есть создавали тег script src=google.blablabla в контроллере lwc. увы никогда не пробовал, было лень и не было надобности)
Maxim Elets
но я вроде когда-то видел, что кто-то подгружал жс через жс. то есть создавали тег script src=google.blablabla в контроллере lwc. увы никогда не пробовал, было лень и не было надобности)
интересненько!!!!!!!!! не слышал про такое. Надо попробовать!
[quote="Maxim Elets"]но я вроде когда-то видел, что кто-то подгружал жс через жс. то есть создавали тег script src=google.blablabla в контроллере lwc. увы никогда не пробовал, было лень и не было надобности)[/quote]
интересненько!!!!!!!!! не слышал про такое. Надо попробовать!:surprised:
Dmitry Shnyrev
Maxim Elets
но я вроде когда-то видел, что кто-то подгружал жс через жс. то есть создавали тег script src=google.blablabla в контроллере lwc. увы никогда не пробовал, было лень и не было надобности)
интересненько!!!!!!!!! не слышал про такое. Надо попробовать!

создавали имеется ввиду https://developer.mozilla.org/en-US/docs ... eElement
[quote="Dmitry Shnyrev"][quote="Maxim Elets"]но я вроде когда-то видел, что кто-то подгружал жс через жс. то есть создавали тег script src=google.blablabla в контроллере lwc. увы никогда не пробовал, было лень и не было надобности)[/quote]
интересненько!!!!!!!!! не слышал про такое. Надо попробовать!:surprised:[/quote]

создавали имеется ввиду https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement
Maxim Elets
создавали имеется ввиду https://developer.mozilla.org/en-US/docs ... eElement
Не получается. LockerService не дает. Я думаю что в SF все предусмотрели от таких хитрых типа меня.
scr тег меняется на безопасный, а если пробовать вставить script с куском кода (что-то намутить с document.write), то он вообще удаляется. Может и есть какой экзотический способ обойти LockerService, но я в интернете упоминаний не нашел. Придется по старинке через iframe + VF мутить
[quote="Maxim Elets"]создавали имеется ввиду https://developer.mozilla.org/en-US/docs ... eElement[/quote]
Не получается. LockerService не дает. Я думаю что в SF все предусмотрели от таких хитрых типа меня. 
scr тег меняется на безопасный, а если пробовать вставить script с куском кода (что-то намутить с document.write), то он вообще удаляется. Может и есть какой экзотический способ обойти LockerService, но я в интернете упоминаний не нашел. Придется по старинке через iframe + VF мутить :so-sad:
Вот я туплю. Блин, зациклился на этом JS и голову ломаю.
Мне этот JS нафиг по сути не нужен. Можно же дергать Google API напрямую GET запросами. Мне там по сути пару методов надо.


Вот я туплю. Блин, зациклился на этом JS и голову ломаю.
Мне этот JS нафиг по сути не нужен. Можно же дергать Google API напрямую GET запросами. Мне там по сути пару методов надо. 

[img]https://az705183.vo.msecnd.net/onlinesupportmedia/onlinesupport/media/skype/fa300xx/facepalm_40x40.gif[/img]


Dmitry Shnyrev
е там по сути па
и еще есть eval, который иногда творит чудеса
[quote="Dmitry Shnyrev"]е там по сути па[/quote]
и еще есть eval, который иногда творит чудеса
wilder
и еще есть eval, который иногда творит чудеса
А можно поподробнее?
Я вот тоже думал про eval, но что то мне подсказывает что эту дырень явно прикрыли.
[quote="wilder"]и еще есть eval, который иногда творит чудеса[/quote]
А можно поподробнее?
Я вот тоже думал про eval, но что то мне подсказывает что эту дырень явно прикрыли.
Если у скрипта нет eval и прочих уязвимостей(https://developer.salesforce.com/docs/pl ... nce.html), то можно же в LWC компоненту и положить минифицированною библиотеку и подключать в LWC - https://developer.salesforce.com/docs/pl ... ode.html

То есть просто делается бандл с нужными Google API и кладется в компоненту. Правда не знаю, что там по объему получится и как это отразится на производительности.

Но тогда обязательно нужно настроить фильтр доступа к Google API по кастом домену Salesforce орга. Иначе можно будет позаимствовать доступ)
Если у скрипта нет eval и прочих уязвимостей(https://developer.salesforce.com/docs/platform/lwc/guide/js-third-party-guidance.html), то можно же в LWC компоненту и положить минифицированною библиотеку и подключать в LWC - https://developer.salesforce.com/docs/platform/lwc/guide/js-share-code.html

То есть просто делается бандл с нужными Google API и кладется в компоненту. Правда не знаю, что там по объему получится и как это отразится на производительности. 

Но тогда обязательно нужно настроить фильтр доступа к Google API по кастом домену Salesforce орга. Иначе можно будет позаимствовать доступ)
Raman Silin
то можно же в LWC компоненту и положить минифицированною библиотеку и подключать в LWC
Ну так это вроде ничем не отличается от того чтобы положить в статик ресурсы js либу. Не знаю как работает JS от гугл внутри, но мне кажется что его надо именно от самого гугла скачивать, а не использовать локальную копию. Гугловский JS в отличии от либ типа JQuery не имеет версионности и меняется на лету. А ты когда подключаешь его на страницу используешь последнюю рабочую версию. А если сделать локальную копию и куда-то положить то есть большая вероятность что через некоторое вреря js код просто перестанет работать.
[quote="Raman Silin"]то можно же в LWC компоненту и положить минифицированною библиотеку и подключать в LWC[/quote]
Ну так это вроде ничем не отличается от того чтобы положить в статик ресурсы js либу. Не знаю как работает JS от гугл внутри, но мне кажется что его надо именно от самого гугла скачивать, а не использовать локальную копию. Гугловский JS в отличии от либ типа JQuery не имеет версионности и меняется на лету. А ты когда подключаешь его на страницу используешь последнюю рабочую версию. А если сделать локальную копию и куда-то положить то есть большая вероятность что через некоторое вреря js код просто перестанет работать.