无法获取 Facebook 的 access_token

2 投票
1 回答
547 浏览
提问于 2025-04-17 15:04

这是获取访问令牌(access_token)的过程,取自facebook-sdk的示例代码。

在我获得了code之后,我就按照下面的示例进行操作:

 if self.request.get("code"):
            args["client_secret"] = FACEBOOK_APP_SECRET
            args["code"] = self.request.get("code")
            response = cgi.parse_qs(urllib.urlopen(
                "https://graph.facebook.com/oauth/access_token?" +
                urllib.urlencode(args)).read())
            access_token = response["access_token"][-1]

我从response中得到的错误是:

'{"error":{"message":"Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request","type":"OAuthException","code":100}}

有没有人能告诉我哪里出错了?

这是我用来获取访问令牌的链接:

https://graph.facebook.com/oauth/access_token?code=AQD3K0Qc-9mJ1pUIWovhbO549GIk-X_y2v6VRbjFB_WtHMtINtU6GTZ4T2rBbjUr9teiGbhxsBm23xjRXhX4CfWdMXgsNXjgTOUeG9Nz6oNmgluvZwv3oQQ42w8vBTowlDGOdKvmW065WrQTLW3e8oZJ7C_XNwUl5bYDD5JF_JLD9O4BBfAGbfRHWHAf6Yy0ewaJr8MmtU-qhemYe8mQ2hrM&client_secret=xxxxx&redirect_uri=http%3A%2F%2F127.0.0.1%3A8088&client_id=xxxx

这个链接包含了https://graph.facebook.com/oauth/access_token?codeclient_secretredirect_uriclient_id

我是不是漏掉了什么参数,导致无法获取访问令牌?

1 个回答

1

我明白了。我的 redirect_uri 网址后面需要加一个斜杠“/”。

应该是 "http://abc.com/"

找到这个错误真是太痛苦了。

撰写回答