2015-02-25 14 views
12

Używam InfusionSoft's API, aby zapisać zawartość formularza wypełnionego na stronie internetowej. Interfejs API wykorzystuje OAuth i z tego co wiem, nie ma sposobu na trwającą całe życie sesję.Jak programowo uruchomić sesję OAuth?

Sposób działania OAuth polega na tym, że jest on przeznaczony do logowania użytkownika, jeśli jego sesja wygasła, podobnie jak logowanie do witryny. To oczywiście nie jest odpowiednie dla API, ale jestem pewien, że nie jest to niezwykłe wymaganie.

Mam początkowy token, ale po tym wygasa, co wtedy? Jedyne co mogę myśleć to mieć zadanie cron, które działa co godzinę, aby odświeżyć token dostępu (istnieje metoda "refreshAccessToken").

+0

Zobacz tę stronę dla niektórych wskazówek: https://developer.infusionsoft.com/docs/read/Getting_Started_With_OAuth2 – silkfire

+0

Tak, to oczekuje, że użytkownik zostanie przekierowany do Infusion Soft, aby się zalogować. To CRM, więc użytkownik nigdy nie miałby konta, zamiast tego musiałby zostać dodany jako kontakt. "Użytkownik" Infusion Soft, a użytkownik logujący się przez OAuth to sama strona internetowa (właściciel CRM). Oczywiście mogę to zrobić, aby uzyskać początkowy token dostępu, ale co dalej? – Mike

Odpowiedz

10

Musisz przechowywać zarówno token dostępu (krótkoterminowy - jest dostępny przez 24 godziny), jak i token odświeżania (długoterminowy).

Konieczne będzie wywołanie metody refreshAccessToken tylko na początku każdej sesji. Ta metoda zwróci zarówno nowy token dostępu, jak i nowy token odświeżania.

Użyj nowego tokena dostępu dla bieżącej "sesji" podczas tworzenia żądań interfejsu API. Token dostępu będzie ważny przez 24 godziny (zmienia się od czasu do czasu).

Zapisz nowy token odświeżania i użyj go ponownie do następnej sesji.

Powiązane problemy