2013-03-25 6 views
0

Это похоже на некоторые вопросы здесь, но ни один из них не дал мне ответа. Я вызываю график api из приложения C# /. Net, чтобы получить фотографии для определенного альбома, и я получаю ошибку 403 ... иногда.Facebook Graph API 403 Запрещенная ошибка

Я никогда не получал ошибку в своей среде разработки, только в производстве. Я также кэширую ответы в течение часа, поэтому большинство приложений, попавших в API за данный час, будет примерно в 20 раз, а не сразу. В настоящее время я проглатываю исключение, когда он ошибается и просто не показывает изображения, но это не долгосрочное решение.

var request = WebRequest.Create("https://graph.facebook.com/ALBUM_ID/photos"); 
var stream = request.GetResponse().GetResponseStream(); 

Это только начало происходить около месяца назад, но я не вижу ничего в списке переломные изменения, которые можно было бы предположить такое поведение. Любое понимание было бы оценено.

Update

Это был спрятан в поток ответа.

{ "Ошибка": { "сообщение": "(# 4) Предел запроса Применение достигнуто", "тип": "OAuthException", "код": 4}}

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

+0

Проверьте, содержит ли содержимое HTTP 403 фактическую ошибку API, связанную с ним. – phwd

+0

Спасибо phwd. Я увижу, есть ли в ответе больше, когда он снова начнет ломаться. Сейчас он работает нормально, но через 2 часа его может не быть. – ohiodoug

+0

@phwd Это было в ответе ... '{"error": {"message": "(# 4) Достигнуто ограничение на запрос приложения", "type": "OAuthException", "code": 4}}' – ohiodoug

ответ

2

если вы делаете запрос GET одной из конечных точек API графического интерфейса FB, для которой не требуется access_token, это не означает, что вы не должны включать его в параметр запроса. Если вы говорите, как говорится в документации FB, так как не включают access_token, то на стороне сервера FB он регистрируется на вашем сервере. Таким образом, ограничение (независимо от его количества) может быть достигнуто очень легко. Если вы, однако, поместите токен доступа пользователя в запрос (& access_token = XXXXXX), тогда запросы регистрируются у конкретного пользователя, поэтому предел почти никогда не будет достигнут. Вы можете протестировать его с помощью простого скрипта, который делает 1000 запросов с и без пользователя access_token.

ПРИМЕЧАНИЕ, токен доступа к приложениям FB будет недостаточным, так как вы столкнетесь с одной и той же проблемой: запросы будут зарегистрированы в приложении access_token, так как ситуация аналогична запросу без access_token.

+0

, похоже, исправил это для меня –

Смежные вопросы