Как вы можете сказать, что за ошибка Graph API является программно? - PullRequest
3 голосов
/ 25 августа 2011

При отправке сообщения в мой канал на Facebook с использованием конечной точки / me / feed я получаю различные ошибки в ответ.

  • Когда я отправлял одно и то же сообщение дважды,Я получил статус 400 http и эту ошибку:

    {"error":{"type":"OAuthException","message":"(#506) Duplicate status message"}}
    
  • Когда пользователь удалил разрешение на публикацию, я получил статус 400 http и эта ошибка:

    {"error":{"type":"OAuthException","message":"(#200) The user hasn't authorized the application to perform this action"}}
    
  • После того, как пользователь удалил приложение, я получил статус 400 http и эту ошибку:

    {"error":{"type":"OAuthException","message":"Error validating access token: The session has been invalidated because the user has changed the password."}}
    

Я хочу иметь возможностьвосстановить пользователя, если он удалил наше приложение или удалите разрешение на публикацию.Как я должен знать?Все ошибки возвращают код состояния 400.Все ошибки возвращаются типа «OAuthException».Некоторые из них имеют код состояния в сообщении.Это то, что я могу проверить и быть уверенным, что это не изменится?А как насчет 3-го?Эта конкретная ошибка - единственная, в которой нет кода?Есть ли где-нибудь список этих кодов?

Ответы [ 2 ]

0 голосов
/ 25 августа 2011

Лучший способ, которым я использовал для проверки пользователя, это проверить / me, чтобы увидеть, возвращено ли какое-либо исключение.Фид может вызывать смешанные результаты, особенно если пользователь не дал приложению разрешение на чтение своего фида.

Вы также можете выполнить вызов метода для users.get, чтобы определить, какие разрешения пользователь далприменение.

0 голосов
/ 25 августа 2011

Перед тем, как позвонить в / me / feed, вы должны подтвердить сеанс пользователя.

Таким образом, вы можете проверить, вошли ли они в систему или нет, и соответственно перенаправить / отправить для входа в систему.

Самый простой способ - сначала выполнить GET для / me / feed и посмотреть, есть ли у вас данные или ошибка.

Если ошибка является безопасной ставкой, авторизация сбрасывается. И вы должны заставить пользователя заново зарегистрировать / авторизовать приложение.

Третья ошибка специфична, поскольку в этот момент вы знаете, где находится пользователь в потоке. Они вошли в систему и авторизовались, но токен доступа недействителен или исчерпан. Снова факт.

http://developers.facebook.com/docs/authentication/ должно помочь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...