我正在构建一个新的应用程序,它仍在开发中,也就是说,我是唯一的用户。用户在前端进行身份验证,然后将Facebook访问令牌传递给后端。我想在后端验证这个令牌,以确保它仍然有效,它与这个应用程序匹配,并且用户也匹配。如how to verify facebook access token? (和the official Facebook docs)中所述,这可以通过调用graph.facebook.com/debug_token来完成。
当我从本地机器进行此调用时,它工作得很好。当我使用Graph API Explorer调试工具进行调试时,它工作得很好。它过去在我的后端也工作得很好,但几天前它停止工作了,现在我每次调用时都会收到这个错误:
GraphAPIError: (#4) Application request limit reached
我不可能超过任何限制,因为API调用的总数很小(这个应用程序仍然处于开发模式,我每次登录都只进行一次调用,不会批量处理任何内容,也不会尝试读取提要,等等)。事实上,我在某一天发出的第一个请求就会导致这个错误。下面是我进行的API调用总数的Facebook图表:

有许多关于同一错误的问题,例如Facebook Application Request limit reached,然而在所有这些情况下,似乎用户实际上超过了一些请求限制,而在这种情况下,这似乎是不可能的。这个错误似乎具有误导性。
我的后端是用Python编写的,托管在Google App Engine上。
你知道这是什么原因造成的吗?
发布于 2015-09-14 23:30:57
事实证明,这与配额完全没有关系。这是Python代码中的一个bug。下面是我正在做的事情(使用Facebook Python SDK)。
import facebook
app_access_token = facebook.get_app_access_token(
FACEBOOK_KEYS['consumer_key'], FACEBOOK_KEYS['consumer_secret'])
graph = facebook.GraphAPI(app_access_token)
token_info = graph.get_object("debug_token?input_token=%s" %
access_token)我将最后一行更改为以下代码:
token_info = graph.get_object("debug_token", input_token=access_token)现在它起作用了。这个错误完全是误导性的。我想Facebook是被弄糊涂了,看不到正确的令牌。我向Facebook提交了一份错误报告,希望错误消息至少能得到改善。
https://stackoverflow.com/questions/32528839
复制相似问题