У меня есть два действия, которые должны использовать мой объект Facebook. Первое действие делает процесс регистрации второй задачей объекта Facebook, чтобы получить список друзей. Я использую класс, который расширяет приложение для переноса объекта Facebook с первого действия на второе.
Это хорошо работает, но когда я выхожу из системы и регистрируюсь в первом действии, я получаю эту ошибку при попытке использовать объект Facebook во втором действии
{"error_code":104,"error_msg":"Requires valid signature","request_args"
Я обновляю объект Facebook при входе в систему, и я обновляю объект Facebook в своем классе Application. Любая идея, почему я могу получить эту ошибку?
Вам не нужно передавать объект Facebook из одной активности в другую, вместо этого сохранить токен доступа и время истечения срока действия в предпочтениях и получить их в другой деятельности.
Это также хорошо, если пользователь снова вернется в приложение.
Вы можете использовать класс SessionStore на официальных примерах facebook, что упростит сохранение/получение информации об аутентификации.
Итак, в первом упражнении вы можете:
Facebook facebook = new Facebook("APP_ID");
if (!SessionStore.restore(facebook, this)) {
// start the authentication process
}
else {
// start the other activity
}
И во втором действии:
Facebook facebook = new Facebook("APP_ID");
if (!SessionStore.restore(facebook, this)) {
// start the first activity to authenticate the user
}
else {
// use the facebook object to make graph requests
}