Несоответствие X-FACEBOOK-PLATFORM при использовании разных приложений
Я успешно внедрил XMPP-клиент с поддержкой аутентификации X-FACEBOOK-PLATFORM и в настоящее время могу подключить любого пользователя к чату.
После этого мне нужно было создать другое приложение с доступом к чату, и я повторно использовал код, изменив идентификатор приложения и секрет приложения на новые приложения. Мое удивление состоит в том, что некоторые пользователи, которые могут успешно войти в систему с моим старым приложением, не могут сделать это с новым!! (Странно).
Я проверил обе конфигурации приложения и они одинаковы, с той лишь разницей, что "Принудительное использование секретного имени входа для вызова OAuth и для auth.login" НЕ доступно в новом приложении, в то время как для него установлено значение "Отключено" в Старый. Оба приложения были созданы с использованием одной учетной записи Facebook.
Может кто-нибудь объяснить, где этот параметр пошел и является ли он ключевым для работы чата? Кроме того, есть мысли о том, что еще может быть не так?
Спасибо!
1 ответ
Там! Я понял! Похоже, "несогласованность" очень последовательна. Пользователи, которые все еще могут подключиться, это пользователи с коротким fb_user_id (те, у кого 9-значные идентификаторы). Пользователи с новыми 15-значными идентификаторами последовательно вызывали ошибку в iksemel базовой библиотеке xmpp, где хэширование данных md5 длиной, кратной 64, приведет к неверному результату.
Мы подали отчет об ошибке как для google-code, так и для google-group для iksemel, вот ссылки:
http://code.google.com/p/iksemel/issues/detail?id=32
http://groups.google.com/group/iksemel/browse_thread/thread/4079f329718f55c