Как будет работать offline_access после устаревания после 1 мая? - PullRequest
2 голосов
/ 29 марта 2012

Я провел какой-то тест, результат, который я нашел, противоречит документации Facebook. https://developers.facebook.com/roadmap/offline-access-removal/

Если мы включим «Отклонить автономный доступ:» и запросим offline_access, на мобильном клиенте мы автоматически получим токен, действительный в течение 60 дней, без обновления SDK. Похоже, что Facebook облегчил работу с клиентами, обновление не требуется. Это то, что сказано в Facebook. «Приложения, мигрирующие в эту функцию, больше не будут запрашивать offline_access. Им будут выданы маркеры доступа с длительным сроком действия, срок действия которых истечет, если пользователь некоторое время не использовал приложение». Как долго это «время» не задокументировано.

Если я обновлю SDK, метод extendingToken не сработает, потому что токен действителен в течение 60 дней. Если мы заставим продлить токен, мы получим следующую ошибку от Facebook, которая, я понятия не имею, что это значит.

Error Domain=facebookErrDomain Code=10 "The operation couldn’t be completed. (facebookErrDomain error 10.)" UserInfo=0x1404bb70 {request_args=(
        {
        key = method;
        value = "auth.extendSSOAccessToken";
    },
        {
        key = sdk;
        value = ios;
    },
        {
        key = "sdk_version";
        value = 2;
    },
        {
        key = "access_token";
        value = AAACiLiBjLHABAOo3NZCSSLlRddFZCQUsky0q9sogtzHIFGpNNoeYUqtt2X2QUvxMg8AwsQqSLP3oe0cxUoLIXwVZC3xDGuBC3QOvFgELwZDZD;
    },
        {
        key = format;
        value = json;
    }
), error_code=10, error_msg=The access token was not obtained using single sign-on}

Если мы не запрашиваем «offline_access», токен истекает через 2 часа.

Каково ваше наблюдение? Есть мысли? Любое понимание от Facebook?

1 Ответ

1 голос
/ 29 марта 2012

В разделе, помеченном «Если вы ранее НЕ запрашивали offline_access» в этом документе , объясняется, как обменять этот двухчасовой токен на токен на 60 дней: (обратите внимание, что значения 2 часа и 60 дней могутизменится в будущем)

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 

И возвращенный токен будет иметь более длительный срок действия (это может быть тот же токен с более длинным сроком действия)или новый токен, вы должны обработать оба случая)

...