Inspiring conference 2016 - Automation & external service integration

Inspiring conference 2016 - Automation & external service integration

How to integration External Service in your web project ? Example based on PHP project by using Flow Framework or Neos CMS, but should be useful in any kind of language.

5c35ea5ff0ba6e46116b1470509f96d1?s=128

Dominique Feyer

April 22, 2016
Tweet

Transcript

  1. Text Automation and External services Integration in Neos explore tt

    ttree digital beans
  2. tt ttree digital beans

  3. Building website since 2000

  4. None
  5. Back then a website were just an island

  6. But everything changed

  7. None
  8. Define « external service »

  9. Why you need external service ?

  10. not invented here

  11. simple does not mean easy

  12. pay as you go

  13. Give me some good external service ?

  14. filepreviews.io

  15. https://dl.dropboxusercontent.com/s/opcxbgkl4znvdc3/2016-04-19%20at%2022.43.png?dl=0

  16. FilePreviews github.com/ttreeagency

  17. None
  18. cloudconvert.com

  19. None
  20. moltin.com

  21. None
  22. AWS Lambda and many many more

  23. But how ?

  24. has an editor, I need to preview link to external

    website in my blog post
  25. Let’s build a web scrapper

  26. or try to integrate embed.ly

  27. /** * Embedly Helper */ class EmbedlyHelper implements ProtectedContextAwareInterface {

    /** * @param string $url * @return array */ public function oembed($url) { $embedly = new Embedly(); $response = $embedly->oembed([ 'url' => $url ]); $data = json_decode(json_encode(reset($response)), true); return $data; } /** * All methods are considered safe * * @param string $methodName * @return boolean */ public function allowsCallOfMethod($methodName) {
  28. prototype(Ttree.Embedly:Oembed) { @override.response = ${Embedly.oembed(q(node).property('url'))} content = TYPO3.TypoScript:Case { link

    { condition = ${response.type == 'link'} type = 'Ttree.Embedly:Oembed.Link' } video { condition = ${response.type == 'video'} type = 'Ttree.Embedly:Oembed.Video' } photo { condition = ${response.type == 'photo'} type = 'Ttree.Embedly:Oembed.Photo' } } }
  29. None
  30. Embedly github.com/ttreeagency

  31. This world is full of Unicorns

  32. None
  33. Pitfalls and Pain points

  34. vendor lock in

  35. external downtime

  36. pricing

  37. hard to code with external dependencies

  38. 
 ngrok is your best friend make your web hooks

    available online
  39. # ngrok http -host-header=rewrite \ -subdomain=cloud-butler \ master-dev.neos-workplace.dev:80

  40. None
  41. None
  42. What about automation ?

  43. web hook in Neos

  44. CloudButler project under development

  45. trigger based on temporal data

  46. Scheduler github.com/ttreeagency

  47. sync data from external source

  48. Aggregator github.com/ttreeagency

  49. Aggregator github.com/ttreeagency

  50. opensource & sharing
 is part of our DNA we love

    client project to support our open source efforts
  51. hello@ttree.ch - @ttreeagency - github.com/ttreeagency tt ttree digital beans you

    are welcome in our office @ lausanne don’t be shy ping us is you are in the area