Как да актуализирам базата данни на моето уеб приложение, когато се направи промяна в QuickBooks Online?

Имам уеб приложение с MySQL база данни, която поддържаме в облака и която се опитваме да интегрираме с нашия акаунт в QuickBooks Online. Искаме да синхронизираме данни между базата данни на уеб приложението и QuickBooks онлайн, като имена и адреси на клиенти. Ако актуализират своя адрес в или уеб приложение, лесно е след това да го актуализират в QuickBooks онлайн с помощта на QuickBooks Online API. Ако обаче те ни кажат новия си адрес по телефона и ние го променим директно в QuickBooks онлайн, нямаме представа как да накараме това да задейства нещо, така че автоматично да актуализира нашето уеб приложение MySQL. Как да направим това или да научим за този процес?


person dallin    schedule 11.09.2015    source източник
comment
Какъв език за програмиране?   -  person Keith Palmer Jr.    schedule 12.09.2015


Отговори (1)


Intuit/QuickBooks има API, който е специално насочен към този случай на употреба. От документите:

Операцията за улавяне на данни за промяна (CDC) връща списък с обекти, които са се променили от определено време. Тази операция е за приложение, което периодично проверява услугите за данни и след това опреснява своето локално копие на данни за обект.

Документите са тук:

По принцип правите OAuth подписана HTTP GET заявка по следния начин:

И получавате обратно списък с обекти, които са се променили от дадена дата/час.

Вашето приложение може да запомни последния път, когато сте извикали това, и периодично да извиква този API, за да получи неща, които са се променили от последния път, когато сте го извикали.

Връщате нещо подобно:

<IntuitResponse xmlns="http://schema.intuit.com/finance/v3" time="2013-04-03T10:36:19.393Z">
   <CDCResponse>
    <QueryResponse>
        <Customer>...
        </Customer>
        <Customer>...
        </Customer>
    </QueryResponse>
    <QueryResponse>
        <Invoice>...
        </Invoice>
        <Invoice>...
        </Invoice>
    </QueryResponse>
    </CDCResponse>
</IntuitResponse>
person Keith Palmer Jr.    schedule 12.09.2015