Устранение неполадок в файле graph.put_object, который возвращает ошибку 400 - PullRequest
0 голосов
/ 28 декабря 2010

Я использую SDK Facebook Python вместе с Google App Engine и звоню, чтобы выполнить регистрацию:

graph.put_object("me", "checkins", message="Hello, world", place="165039136840558", coordinates='{"latitude":"38.2454064", "longitude":"-122.0434404"}')

Однако, это выдает ошибку 400 Bad Request, и я не могу попытаться поймать его, чтобы получить важную информацию.

При неправильном запросе Facebook должен вернуть объект, подобный приведенному ниже, который может помочь в устранении неполадок и решении проблемы, но я не уверен, как мне получить этот объект:

{
   "error": {
    "type" : "OAuthException",
    "message" : "An active access token must be used to query information about the current user."
    }
   }

[редактировать]

Я временно могу выяснить проблему по: Регистрация почтовых данных

logging.info("LOG" + str(post_data))

и затем с помощью REST-клиента, такого как расширение для Firefox, сделать запрос снова. Ответ дает мне информацию, необходимую для продолжения. Однако было бы лучше, если бы я мог получать сообщения об ошибках в своем приложении.

Ответы [ 2 ]

2 голосов
/ 28 декабря 2010

Как и в сообщении об ошибке, вам нужно создать и использовать токен доступа: вот еще немного информации.Извините, я пока не могу "комментировать" и вынужден отвечать.http://benbiddington.wordpress.com/2010/04/23/facebook-graph-api-getting-access-tokens/

1 голос
/ 23 февраля 2012

Я столкнулся с той же проблемой, и вот как получить это сообщение об ошибке:

import urllib2

url='https://graph.facebook.com/me/?method=post' # this will 400 b/c it has no auth token.

try:
   resp = urllib2.urlopen(url)
except urllib2.HTTPError as e:
   error_reason = e.read()

Затем вы можете использовать модуль json, чтобы проверить JSON-сообщения Facebook с ошибкой:

json_error = json.loads(error_reason)

Убедитесь, что вы используете json.loads, поскольку error_reason является строкой

...