我正在使用Facebook Python的SDK和Google App Engine,并打电话进行签到:
graph.put_object("me", "checkins", message="Hello, world", place="165039136840558", coordinates='{"latitude":"38.2454064", "longitude":"-122.0434404"}')
然而,这会引发错误400错误请求,我似乎无法尝试捕获它,所以我可以获得重要信息。
在一个糟糕的请求中,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))
然后使用像Firefox扩展程序这样的REST客户端再次发出请求。响应为我提供了我需要继续的信息。但是,如果我可以在我的应用程序中获取错误消息,那会更好。
答案 0 :(得分:2)
如错误所示,您需要创建和使用访问令牌: 这里有更多信息。对不起,我还不能“评论”,我被迫回答。 http://benbiddington.wordpress.com/2010/04/23/facebook-graph-api-getting-access-tokens/
答案 1 :(得分:1)
我遇到了同样的问题,以下是如何获取该错误消息:
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
模块检查Facebook发送的JSON错误:
json_error = json.loads(error_reason)
请确保您使用json.loads
,因为error_reason
是一个字符串