You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django应用切换至正式环境时Facebook登录提示“Feature Unavailable”问题求助

Django应用切换至正式环境时Facebook登录提示“Feature Unavailable”问题求助

我正在给我的Django应用实现Facebook登录功能,开发环境下一切正常,但切换到正式环境后,却遇到了这个提示:

Feature Unavailable
Facebook Login is currently unavailable for this app, since we are updating additional details for this app. Please try again later.

我检查了开发者控制台,里面没有需要处理的必填操作。我也已经完成了以下准备工作:

  • 已获取email、public profile及其他所需权限的高级访问权限
  • 完成了企业验证,并且已经将我的企业验证为技术提供商

下面是我处理Facebook登录的Django代码:

def facebook_login(request):
    facebook_auth_url = "https://www.facebook.com/v21.0/dialog/oauth"
    if "test" in request.get_full_path():
       redirect_uri = request.build_absolute_uri('/test/home/facebook_login/facebook_callback/')
       redirect_uri = "http://localhost:8000/home/facebook_login/facebook_callback/"
    else:
        redirect_uri = request.build_absolute_uri('/home/facebook_login/facebook_callback/')
    scopes = "pages_show_list,business_management,read_insights,ads_read,pages_read_engagement,ads_management"
    
    state = generate_state()
    request.session['oauth_state'] = state

    
    params = {
        'client_id': settings.META_APP_ID,
        'redirect_uri': redirect_uri,
        'scope': scopes,
        'response_type': 'code',
        'state': state,
    }
    auth_url = f"{facebook_auth_url}?{urlencode(params)}"
    return JsonResponse({'authorization_url': auth_url})

def facebook_callback(request):
    error = request.GET.get('error')
    if error == 'access_denied':
        prefix = 'test/' if os.getenv('PROD') == 'blue' else ''
        cancel_redirect_url = (
            "http://localhost/" + prefix + "#/home/connections" 
            if os.getenv('DEVELOPMENT') == 'True' 
            else "https://platform.webalyze.ai/" + prefix + "#/home/connections"
        )
        return redirect(cancel_redirect_url)
    
    state = request.GET.get('state')
    if state != request.session.pop('oauth_state', None):
        return JsonResponse({'error': 'Invalid state parameter'}, status=400)

    code = request.GET.get('code')
    if not code:
        return JsonResponse({'error': 'No code provided'}, status=400)

    token_exchange_url = "https://graph.facebook.com/v21.0/oauth/access_token"
    redirect_uri = request.build_absolute_uri(request.path)

    print('REDIRECT (facebook_callback):', redirect_uri)

    params = {
        'client_id': settings.META_APP_ID,
        'redirect_uri': redirect_uri,
        'client_secret': settings.META_APP_SECRET,
        'code': code,
    }

    response = requests.get(token_exchange_url, params=params)
    data = response.json()

    if 'access_token' in data:
        access_token = data['access_token']

        saveMetaTokenToDatabase(request.user, access_token)

        prefix = 'test/' if os.getenv('PROD') == 'blue' else ''
        if os.getenv('DEVELOPMENT') == 'True':
            return redirect("http://localhost/" + prefix + "#/home/connections")
        else:
            return redirect("https://platform.webalyze.ai/" + prefix +"#/home/connections")
    else:
        return JsonResponse({'error': 'Failed to obtain access token'}, status=400)

我到底还漏掉了什么步骤,才能让正式环境下的Facebook登录正常工作?

备注:内容来源于stack exchange,提问作者Imre Nádas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 12:32:57