Facebook API OAuthException: «Произошла непредвиденная ошибка. Пожалуйста, повторите запрос позже »при попытке получить маркер доступа к странице. - PullRequest
8 голосов
/ 02 декабря 2011

Я хочу, чтобы мое приложение могло публиковать обновления статуса на определенной странице. Я настроил приложение и получил его идентификатор, и я следую за разделом «Страница входа» в нижней части документации по аутентификации Facebook здесь .

Первый этап (пользователь предоставляет приложению разрешение manage_page), кажется, работает отлично. Я перенаправлен на URL-адрес, подобный следующему:

http://myapp.com/#access_token=ACCESS_TOKEN&expires_in=6483

Затем в документах говорится, что вы должны получить доступ к следующему:

https://graph.facebook.com/me/accounts?access_token=TOKEN_FROM_ABOVE

заменив TOKEN_FROM_ABOVE на тот, который был возвращен предыдущим запросом, и это должно вернуть «список всех страниц, которые администрирует пользователь, включая маркер доступа к конкретной странице для каждой страницы».

Однако это не так. Все, что я получаю, это следующий ответ JSON:

{
    "error": {
        "message": "An unexpected error has occurred. Please retry your request later.",
        "type": "OAuthException"
    }
}

Что я делаю не так? Мог ли я что-то неправильно настроить при создании приложения? Сообщение об ошибке менее чем полезно, поэтому любая помощь будет принята с благодарностью.

Ответы [ 4 ]

28 голосов
/ 07 декабря 2011

Просто внезапно начал работать этим утром - понятия не имею, почему.

3 голосов
/ 07 декабря 2011

Я думаю, что могу пролить немного света на это.

Я часто получаю это возвращение при запросе токенов доступа к конкретной странице; сбои в этом вызове, по-видимому, пропорциональны количеству страниц, администрируемых учетной записью, для которой предназначен токен доступа, поэтому, если вы администрируете 100 страниц, вы будете терпеть неудачу чаще, чем если у вас есть 1 страница, если у вас есть Сбои на 5000 страниц будут происходить чаще, чем они.

Это указывает на то, что ошибка связана с размером ответа, поскольку возвращаемый JSON может быть очень длинным для больших наборов страниц.

Исправить это просто. Вместо того, чтобы запрашивать все страницы, используя

http://graph.facebook.com/me/accounts?access_token={admin access token}

использование

http://graph.facebook.com/{page id}?fields=access_token&access_token={admin access token}

Это вернет токен доступа только для этой страницы. Поскольку ответ небольшой, вы должны сталкиваться с ошибками на стороне сервера Facebook гораздо реже. С тех пор как я перешел, я не думаю, что у меня когда-либо случался сбой, и я часто звоню.

1 голос
/ 02 декабря 2011
0 голосов
/ 29 января 2013

Я согласен с Марком, так как он неожиданно начинается, я получал эту ошибку при публикации некоторых действий и объектов с открытым графиком на моей временной шкале в Facebook, но обнаруженная мною проблема заключалась в основном в кеше, который поддерживает Facebook.

Я сделал некоторые изменения мета-тегов "og" в URL-адресах моих объектов (здесь речь идет об объектах Open Graph), и каким-то образом Facebook выдавал ту же ошибку, что и в основном вопросе, потому что он не принимал изменения при обновлении моего страница полностью. Затем, чтобы обновить их со стороны Facebook, мне нужно было просто отладить URL-адреса моих объектов (как 'http', так и 'https') из отладчика facebook и вуаля!

...