资源所有者密码凭据授予类型缺少redirect_uri错误

时间:2016-03-31 04:05:47

标签: python facebook oauth oauth-2.0 facebook-oauth

我正在尝试在Python上编写一个脚本,从facebook获取我的朋友列表。要获取数据,我需要获取访问令牌。我正在使用requests_oauthlib包来实现相同的功能。由于我不是在编写Web应用程序,因此我没有使用本地Web服务器(没有重定向URL)。我选择使用资源所有者密码凭据授予类型。我收到了错误。

这是我的代码:

from requests_oauthlib import OAuth2Session
from oauthlib.oauth2 import LegacyApplicationClient

FACEBOOK_APP_ID = '**********'
FACEBOOK_APP_SECRET = '*********'
username = 'Aman Mittal'
password = '****'
token_url = "https://graph.facebook.com/oauth/access_token"

oauth = OAuth2Session(client=LegacyApplicationClient(client_id=FACEBOOK_APP_ID))
oauth_access_token = oauth.fetch_token(token_url, client_secret=FACEBOOK_APP_SECRET,username=username, password=password, client_id=FACEBOOK_APP_ID)

当我运行脚本时,它显示错误 - “缺少访问令牌参数”

我经历了追溯,并意识到收到的访问令牌是:

{"error":{"message":"Missing redirect_uri parameter.","type":"OAuthException","code":191,"fbtrace_id":"CUSmQKT8YGb"}}

首先,我在使用旧版应用程序客户端(资源所有者密码凭据授予类型)时不明白,为什么需要重定向uri?

如果我选择使用web.py或其他方式启动网络服务器。我如何在Facebook上注册?或者我甚至需要吗?

PS。我是Python新手并在Stack Overflow上发帖。如果我犯了任何愚蠢的错误,请尝试解释详情并原谅我。

1 个答案:

答案 0 :(得分:0)

Facebook不支持OAuth 2.0资源所有者密码凭据授予类型。