Надежность сообщений об ошибках Facebook Graph - PullRequest
2 голосов
/ 07 ноября 2011

Есть ли надежный способ получения ошибок токена доступа с платформы facebook?

Наше приложение для iOS / Android должно сохранять сессию пользователей Facebook.Это нормально, за исключением того, что ошибки аутентификации, которые мы получаем от Facebook, кажутся несовместимыми.

По сути, если мы получаем ошибку от Facebook, мы хотим знать, требует ли пользователь повторной аутентификации или это происходит из-за прерывистостиошибка (т. е. по каким-то причинам они ограничены по скорости).

Большинство ошибок в графике Facebook, похоже, содержат код ошибки в теле текста сообщения об ошибке.

Некоторые этого не делают.

например

{"error": {"message": "Ошибка при проверке токена доступа: сеанс недействителен, поскольку пользователь вошел в системуout. "," type ":" OAuthException "}}

Не содержит код ошибки, поэтому единственный способ проверить эту ошибку - выполнить сравнение строк в сообщении.Это кажется невероятно ненадежным способом проверки на наличие ошибок.

Кажется, что почти возможно проверить, указывает ли переменная "type" в строке json "OAuthException", за исключением того, что если пользователь имеет скоростьограниченный, то это также вызовет OAuthException, но он не требует от пользователя повторного входа в систему, он только заставляет их немного подождать и прекратить публиковать так много.

Я видел, какЧтобы перечислить здесь: https://developers.facebook.com/blog/post/500, но по-прежнему будет возникать проблема, заключающаяся в том, что мои игры будут требовать от пользователей повторного входа в Facebook, если они слишком увлечены размещением на своей стене.

Итак,Есть ли надежный способ получения ошибок с платформы Facebook?

На данный момент лучшее решение, которое я могу найти, - это проанализировать строку сообщения на наличие кодов ошибок, а если я их не обнаружу, тогда повторно проанализировать строку, чтобы найти определенные сообщения (например, «Ошибка проверки токена доступа»)и, наконец, если я не могу определить, в чем заключается ошибка, просто panic и выйдите из системы.

1 Ответ

0 голосов
/ 17 ноября 2011

К сожалению, я не нашел отличный способ справиться с этим.Лучшее решение, которое я нашел на данный момент, это посмотреть, является ли ошибка OAuthException, сравнить сообщение об ошибке с белым списком «допустимых сбоев», которые не требуют повторной аутентификации, но если ошибка не соответствует какой-либо ошибке наВ этом белом списке, я предполагаю, что пользователь должен пройти повторную аутентификацию с помощью Facebook.

Для справки, единственная ошибка, которую я обнаружил в белом списке, - это ошибка "Пользователь ограничен по скорости".Чтобы обнаружить это, я проверяю, содержит ли сообщение об ошибке подстроку "(# 341)", которая является кодом ошибки этой ошибки (не то, что эта ошибка является одной из немногих ошибок, которая содержит код ошибки в сообщении об ошибкетела).

...