Не можем да разширим токените за достъп на някои потребители за нашето приложение

Имаме проблем, при който някои от нашите потребители получават само краткотрайни токени за достъп дори след преминаване през oauth потока от страна на сървъра и разширяване на токена. След като направих малко отстраняване на грешки, разбрах, че това се случва за нашето приложение в производство, но не и за нито едно от моите тестови приложения. Възможно ли е Facebook да ограничава нашето приложение по някаква причина (може би поради доклади за спам?)

Като начин да тествам това, създадох помощна програма за тестване, която описва oauth процеса на нашето приложение и отговорите, получени от Facebook.

  1. Отидете тук: Помощна програма Buffer Facebook OAuth Test
  2. Влезте с тестов фейсбук потребител:

        username: [email protected]
        password: thisisabadpassword
    
  3. Прегледайте потока на oauth.

Като справка, това е резултатът, който получаваме за тази помощна програма: http://cl.ly/image/0U273e163o2o

За съжаление отговорът от Facebook относно нашите доклади не беше толкова полезен, колкото се надявахме.

Докладван проблем с помощната програма за тестване

Докладван проблем, при който решението не разрешава проблема

Свързан проблем

Всяко вникване тук ще бъде много оценено :).


person sunils34    schedule 24.05.2013    source източник
comment
AFAIK трябва да обмените току-що предоставения acces_token срещу така наречения дълготраен токен. Ние правим това във всеки случай и незабавно през цялото време получаваме токен за достъп от FB. Преди разглеждахме подобни проблеми. developers.facebook.com/roadmap/offline-access-removal   -  person Axel Amthor    schedule 29.05.2013
comment
забравете коментара ми, видях от екранните снимки, че вече го правите. Глоба. Наскоро имахме 500 сървърна грешка на тази крайна точка за няколко дни, така че мисля, че те все още се занимават с това?   -  person Axel Amthor    schedule 29.05.2013
comment
Опитахте ли стъпките, както е написано в този доклад за грешка   -  person Anvesh Saxena    schedule 07.06.2013
comment
Вярвам, че отговорът ми на developers.facebook.com/bugs/572944616072765 е правилен - имате ли някаква причина да вярвам, че не е?   -  person Igy    schedule 07.06.2013
comment
Здравей @igy, много ти благодаря за отговора и работата тук, за да помогнеш! За нас означава много, че участвате. Опитах решението, предоставено в този билет, доста пъти без успех (извиквайки DELETE на /me/permissions, преди да премина отново през потока). Едно нещо, което трябва да се отбележи, е, че предоставеният тук пример използва потребител, който не се е удостоверил преди оттеглянето на offline_access. Когато използваме различно приложение със същия поток, получаваме дълготрайния токен, както се очаква. Уведомете ме, ако имате нужда от друга информация от мен, за да ви помогнем да възпроизведете това.   -  person sunils34    schedule 07.06.2013


Отговори (1)


Ние също сме имали подобни проблеми, но при използването на техния javascript API. Токенът за достъп се държи странно в някои случаи. (трае само няколко секунди) Работата, която в крайна сметка използваме, е да направим проверка на състоянието на влизане преди всяко извикване на FB api като:

FB.getLoginStatus(function (response) {
  //do your thing
}

Не знам как работи вашият бекенд код.

Основната идея е да поддържате текущата facebook сесия на живо, въпреки че вашият маркер за достъп е все още валиден. проверете новата му крайна точка: https://developers.facebook.com/roadmap/offline-access-removal/#extend_token

https://graph.facebook.com/oauth/access_token?             
    client_id=APP_ID&
    client_secret=APP_SECRET&
    grant_type=fb_exchange_token&
    fb_exchange_token=EXISTING_ACCESS_TOKEN 
person D.J    schedule 05.06.2013