【问题标题】:Facebook API Auth 2 with python or DjangoFacebook API Auth 2 与 python 或 Django
【发布时间】:2020-05-18 18:07:10
【问题描述】:

我正在尝试使用 Facebook oauth2 api 获取用户令牌,但我在重定向 url 调用时遇到此错误。

/data/FacebookAuth/ 处的 InsecureTransportError (insecure_transport) OAuth 2 必须使用 https。

我已经运行 ngrok & https 设置,但我不知道为什么它给了我这个错误

这是我在 django 中获取此令牌的代码

#Facebook App Credentials
client_id = 'xxxx'
client_secret = 'xxxxx'

# OAuth endpoints given in the Facebook API documentation> 

authorization_base_url = 'https://www.facebook.com/dialog/oauth'
token_url = 'https://graph.facebook.com/oauth/access_token'
redirect_uri = 'https://ab207c1f.ngrok.io/data/FacebookAuthRedirect' 

facebook = OAuth2Session(client_id, redirect_uri=redirect_uri)
facebook = facebook_compliance_fix(facebook)

#Getting Facebook Authentication
def FacebookAuth(request): 
    authorization_url, state = facebook.authorization_url(authorization_base_url)   
    redirect(authorization_url)

#Getting Facebook Authentication Redirect

def FacebookAuthRedirect(request):
    redirect_response = request.GET.get('code', '')
    token = facebook.fetch_token(token_url, client_secret=client_secret,
                   authorization_response=redirect_response)   
    print(token)
    return HttpResponse('ibrahim')

【问题讨论】:

    标签: python django facebook facebook-graph-api python-requests


    【解决方案1】:

    挖了一下。我找到了适合我的解决方案。

    这是因为authorization_code = request.build_absolute_uri()。我尝试打印它,它包含 "http" 而不是 "https"。我使用以下代码将字符串替换为 httpsredirect_response = redirect_response.replace("http://", "https://")

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 2016-05-07
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 1970-01-01
      相关资源
      最近更新 更多