Rozsądne rozwiązania do usuwania uprawnień offline_access

Wracam do budowania aplikacji FB po pewnym czasie od platformy FB i widzę, że stare uprawnienie offline_access zostało usunięte i zastąpione długimi (ish) -expiry tokenami [1].

Wydaje się więc, że każda zewnętrzna aplikacja, która musi przesyłać dane do Facebooka na podstawie, powiedzmy, harmonogramu lub jakiejś aktywności w zewnętrznej aplikacji, będzie musiała poradzić sobie z wygasłym tokenem o długim dostępie. Jest to bardziej frustrujące, ponieważ użytkownik wylogowujący się z FB zabije także dowolny znacznik o długim czasie ważności [2], podczas gdy wcześniej, offline_access, żył nawet wtedy, gdy użytkownik był wylogowany.

Nadal jestem na etapie rozważania i rozwiązania, ale przychodzą mi na myśl dwa pomysły:

1) Za każdym razem, gdy moja aplikacja kontaktuje się z użytkownikiem, który ma integrację z FB, proszeni są o kliknięcie łącza, które wywoła ponowne autoryzowanie za pomocą FB, aby uzyskać nowy token o długim dostępie. Zwykle kontaktuje się z moimi użytkownikami kilka razy w ciągu życia tokena o długim dostępie, więc topowinien skutecznie przedłużaj przedłużanie tokenu o długim dostępie tak długo, jak tego potrzebują (nawet jeśli doda to trochę irytujących tarć do mojej aplikacji)

2) Ponieważ nie mogę zagwarantować, że 1) zawsze zadziała (ze względu na to, że użytkownicy nie klikają linku ponownego autoryzacji w powiadomieniu e-mail mojej aplikacji lub wylogowują się z Facebooka, na przykład) Będę musiał także poradzić sobie z nieudanymi interakcjami FB umieszczając je w kolejce do przechowywania i wysyłając wiadomość e-mail do użytkownika, aby wyraźnie poprosił ich o ponowne przyznanie znacznika dostępu. Nie fajnie, ale nie widzę innej opcji. Jeśli nie zareagują na żądanie po X próbach poproszenia ich o ponowne udzielenie zezwolenia, po prostu muszę spakować zadanie i wysłać je e-mailem, aby wyjaśnić, że jest to spowodowane ograniczeniem FB, a nie moją aplikacją. Znowu nie fajnie.

Czy ktoś musiał wymyślić jakieś lepsze rozwiązania, aby utrzymać możliwość interakcji z kontem użytkownika za pomocą uwierzytelniania / wyraźnych uprawnień? Chciałbym usłyszeć, co zrobiłeś.

(To wszystko czeka oczywiście na ponowne przeczytanie FB ToS, oczywiście - jest całkiem możliwe, że jest to sprzeczne z zasadami, co byłoby jeszcze bardziej frustrujące)

EDYCJA / AKTUALIZACJA: dane, które muszę przesłać to obrazy do albumu fotograficznego, który dotrze do mojego serwera z różnych źródeł, a następnie zostanie przeniesiony do odpowiedniego albumu użytkownika (oczywiście z ich wcześniej udzielonym zezwoleniem). Nie będę w stanie zagwarantować interakcji użytkownika końcowego z Internetem w momencie, w którym obrazy trafią na mój serwer, aby skłonić użytkownika końcowego do przyznania mi nowego tokena krótkiego okresu użytkowania. Gruntownie,offline_access naprawdę byłoby idealne dla tej IMO.

AKTUALIZACJA 2: NB: to naprawdę klucz do mojego przypadku użycia, że ​​użytkownik nie musi korzystać z mojej aplikacji lub Facebooka, gdy token musi zostać przyznany lub przedłużony.

[1]https://developers.facebook.com/roadmap/offline-access-removal/ [2]http://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/

questionAnswers(3)

yourAnswerToTheQuestion