Upgrade to Pro — share decks privately, control downloads, hide ads and more …

APIで叶えるシステム連携 #mauticon

APIで叶えるシステム連携 #mauticon

Mauticには外部システム連携のための方法として、REST API、Webhook、プラグインシステムがサポートされているため、システム間のデータ同期や何らかのアクションをトリガーとした処理をシームレスに行うことが可能です。
サイボウズ社が提供するCRM「Kintone」を例に、APIを用いたMautic連携についてデモを交えてご紹介します。

https://mauticon.mautic.org/

More Decks by アクイアジャパン Acquia Japan

Other Decks in Programming

Transcript

  1. – MauticͰ༻ҙ͞Ε͍ͯΔ REST API ΍ Webhook Λ׆༻ͯ͠γεςϜ࿈ܞ͕ߦ͑·͢ɻZapier ͳͲͷλεΫࣗಈԽπʔϧ΋ɺཪଆͰ͸REST APIɺWebhook͕ݺͼग़͞Ε͍ͯ·͢ɻ 


    – ࿈ܞ͍ͨ͠γεςϜଆʹ΋APIͷޱ͕༻ҙ͞Ε͍ͯΕ͹ɺϓϩάϥϚϒϧʹࣗಈԽϑϩʔΛ ૊Ή͜ͱ͕Ͱ͖·͢ɻ 
 – ͦΜͳMauticͷAPIͷ֓ཁ΍࢖͍ํɺ࿈ܞσϞΛ͝঺հ͠·͢ɻ MauticͷγεςϜ࿈ܞ
  2. – Mautic͸RESTܗࣜͷWeb API (REST API)͕ఏڙ͞Ε͍ͯ·͢ɻ – PHPϥΠϒϥϦ(mautic/api-library)͕ެ։͞Ε͍ͯ·͢ɻ – JSONܗࣜͰϨεϙϯεΛग़ྗ͠·͢ɻ 


    – ΤϯτϦϙΠϯτɿhttps://your-mautic.com/api 
 – ରԠ͍ͯ͠ΔೝূೝՄํࣜ – Basicೝূ – OAuth 2 (OAuth 1͸Mautic 4ܥͰഇࢭ) MauticͷREST APIͱ͸
  3. – Mauticͷ؅ཧը໘Ͱߦ͑Δ͜ͱͷ΄ͱΜͲ͕APIܦ༝Ͱ΋ߦ͑·͢ɻ ๛෋ͳΤϯυϙΠϯτ Assets Campaigns Categories Companies Contacts Data Dynamic

    Content Emails Fields Files Forms Marketing Messages Notes Nortifications Pages Point Actions Point Triggers Roles Segments Text messages Stages Tags Themes Tweets Users Webhooks
  4. – Resource Owner (ϦιʔεΦʔφʔ) – Ϧιʔεͷॴ༗ऀ 
 – Client (ΫϥΠΞϯτ)

    – ϦιʔεΦʔφʔͷ୅ΘΓʹอޢ͞ΕͨϦ ιʔε΁ͷΞΫηεΛཁٻ͢ΔΞϓϦέʔ γϣϯ 
 – Authorization server (ೝՄαʔόʔ) – ݖݶҠৡͷ஥հΛ͢ΔγεςϜ 
 – Resource server (Ϧιʔεαʔόʔ) – ϦιʔεΛ؅ཧ͢ΔγεςϜ OAuthͷొ৔ਓ෺ https://datatracker.ietf.org/doc/html/ rfc6749
  5. Mauticʹ౰ͯ͸ΊΔͱɾɾ MauticͷϩάΠϯϢʔβʔ όοναʔόʔɺCLIɺαʔυύʔςΟΞ ϓϦͳͲ Mauticαʔόʔ – Resource Owner (ϦιʔεΦʔφʔ) –

    Ϧιʔεͷॴ༗ऀ 
 – Client (ΫϥΠΞϯτ) – ϦιʔεΦʔφʔͷ୅ΘΓʹอޢ͞ΕͨϦ ιʔε΁ͷΞΫηεΛཁٻ͢ΔΞϓϦέʔ γϣϯ 
 – Authorization server (ೝՄαʔόʔ) – ݖݶҠৡͷ஥հΛ͢ΔγεςϜ 
 – Resource server (Ϧιʔεαʔόʔ) – ϦιʔεΛ؅ཧ͢ΔγεςϜ
  6. – Authorization code grant – ࠷΋҆શͰ࠷΋ෳࡶͳϑϩʔɻAuthorization codeΛհͯ͠ΞΫηετʔΫϯΛൃߦ͠·͢ɻ 
 – Client

    credentials grant – ϦιʔεΦʔφʔΛհ͞ͳ͍ϑϩʔɻcronδϣϒ࣮ߦͳͲϚγϯؒೝূ͕ߦ͑·͢ɻ 
 – Resource owner password credentials grant – (ඇਪ঑) ΫϥΠΞϯτ͕ϦιʔεαʔόʔͷϑΝʔετύʔςΟͰ͋Δ৔߹ʹ༗ޮͰ͢ɻ 
 – Implicit grant – (ඇਪ঑) JavaScript΍ϞόΠϧΞϓϦ޲͚ʹ༻ҙ͞Ε͍ͯͨϑϩʔͰ͢ɻ άϥϯτλΠϓͱ͸ ΫϥΠΞϯτ͸ΞΫηετʔΫϯΛ༻͍ͯϦιʔεαʔόʔʹΞΫηε͠·͢ɻRFCͰ࢓༷͕ެ։͞Ε͍ͯ ΔΞΫηετʔΫϯͷൃߦํ๏(=άϥϯτλΠϓ)Λ঺հ͠·͢ɻ
  7. – Authorization code grant – ࠷΋҆શͰ࠷΋ෳࡶͳϑϩʔɻAuthorization codeΛհͯ͠ΞΫηετʔΫϯΛൃߦ͠·͢ɻ 
 – Client

    credentials grant – ϦιʔεΦʔφʔΛհ͞ͳ͍ϑϩʔɻcronδϣϒ࣮ߦͳͲϚγϯؒೝূ͕ߦ͑·͢ɻ 
 – Resource owner password credentials grant – (ඇਪ঑) ΫϥΠΞϯτ͕ϦιʔεαʔόʔͷϑΝʔετύʔςΟͰ͋Δ৔߹ʹ༗ޮͰ͢ɻ 
 – Implicit grant – (ඇਪ঑) JavaScript΍ϞόΠϧΞϓϦ޲͚ʹ༻ҙ͞Ε͍ͯͨϑϩʔͰ͢ɻ Mautic͕αϙʔτ͢ΔάϥϯτλΠϓ Mautic͕αϙʔτ͍ͯ͠ΔάϥϯτλΠϓ͸࣍ͷ2ͭͰ͢ɻ
  8. τʔΫϯൃߦํ๏ͷҧ͍ Authorization code͔ΒΞΫηετʔΫϯͷҾ͖׵͑ʹ͸ΫϥΠΞϯ τIDͱΫϥΠΞϯτγʔΫϨοτ͕ඞཁͳͷͰɺAuthorization code ୯ಠͰྲྀग़ͯ͠΋ϦεΫΛ௿͘཈͑ΒΕ·͢ɻ༗ޮظݶͷ௕͍Ϧϑ ϨογϡτʔΫϯΛ͕ൃߦ͞ΕΔ͜ͱͰɺΞΫηετʔΫϯͷ༗ޮظ ݶ͕੾Εͨޙʹɺ࠶౓ϦιʔεΦʔφʔͷೝূΛߦΘͳͯ͘΋ΞΫη ετʔΫϯΛ࠶ൃߦ͢Δ͜ͱ͕ՄೳͰ͢Ň Client

    credentials grant ΫϥΠΞϯτͱಉҰͷϦιʔεΦʔφʔ͕อ༗͢ΔϦιʔεʹΞΫη εͨ͠ΓɺϦιʔεΦʔφʔ͔Βͷݖݶҕৡ͕ඞཁͳ͍ϦιʔεʹΞ Ϋηε͢Δ৔߹ʹ༗ޮͰ͢ɻϦιʔεΦʔφʔΛհ͞ͳ͍ͨΊɺcron δϣϒͷ࣮ߦ౳Λߦ͏ͨΊͷϚγϯؒೝূ͕ߦ͑·͢ɻ Authorization code grant
  9. – MauticͷREST APIʹ͍ͭͯ·ͱΊ·ͨ͠ɻ – MauticͷREST APIʹ͍ͭͯ – REST APIͷ࢖͍ํ –

    OAuthʹΑΔೝূೝՄ – APIϦΫΤετΛςετ͢Δ – MauticͱKintoneΛ࿈ܞ͢Δ ྑ͍APIϥΠϑΛʂ ·ͱΊ