我正在尝试确定用户是否已授予对我的应用程序的访问权限,如果是,则它具有哪些权限。这不是在初始注册过程中,而是在稍后我需要验证用户没有删除权限时。
我运行以下命令:
access_token = "users_access_token"; # saved when user signed up using FB
url = "https://graph.facebook.com/v2.0/me/permissions/?access_token="+access_token
response = urllib2.urlopen(url)
如果用户已授予访问权限,则响应是具有权限的 json 字符串。如果我将 url 复制粘贴到浏览器中,这与我看到的相同。
但是,如果用户未授予访问权限(即在初始注册后删除了我的应用程序),则会收到错误消息:“HTTP 错误 400:错误请求”。但是,如果我将 url 复制粘贴到我的浏览器中,那么我会得到一个带有正确错误消息的 json 字符串:“用户尚未授权应用程序...”(如果我在浏览器 url 中输入了错误的 access_token,那么我仍然会得到正确的错误消息“格式错误的访问令牌”)
那么,如何优雅地检查用户是否撤销了对我的应用程序的访问权限?我不想得到一个异常,而是一个正确的 FB 错误响应。似乎这应该是可能的,因为当我将 url 复制粘贴到浏览器中时它可以工作。
请注意,我根本没有更改我的代码。唯一改变的是用户是否已授予对应用程序的访问权限(因此不是 url 格式错误。)