当前位置: 首页 > 知识库问答 >
问题:

facebook django应用程序的oauth中出现redirect_uri错误

司寇照
2023-03-14
from django.http import HttpResponse, HttpResponseRedirect
from django.template import Context, loader
import urllib, json, sys

APP_ID = 'DDDDDDDDDDDDDDD'
APP_SECRET = 'SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS'
MY_URL = 'http://pckandap.com'

def fbauth(request):
    template = loader.get_template('fbauth.html')

    code = request.GET.get('code')
    if code is None:
        redirect_url = 'https://www.facebook.com/dialog/oauth?client_id='+APP_ID+'&redirect_uri='+MY_URL+'&state=pk1&scope=user_likes'
        return HttpResponseRedirect(redirect_url)
    else:
        access_token = urllib.urlopen('https://graph.facebook.com/oauth/access_token?client_id='+APP_ID+'&redirect_uri='+MY_URL+'&client_secret='+APP_SECRET+'&code='+code)
        context = Context({
            'code_url' : 'https://www.facebook.com/dialog/oauth?client_id='+APP_ID+'&redirect_uri=http://test.com'+'&state=pk1&scope=user_likes',
            'token_url' : 'https://graph.facebook.com/oauth/access_token?client_id='+APP_ID+'&redirect_uri='+MY_URL+'&client_secret='+APP_SECRET+'&code='+code,
            'access_token' : access_token.read()
        })
    return HttpResponse(template.render(context))

共有1个答案

华恩
2023-03-14
from django.http import HttpResponse, HttpResponseRedirect
from django.template import Context, loader
import urllib, json, sys, cgi

APP_ID = 'DDDDDDDDDDDDDDD'
APP_SECRET = 'SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS'
MY_URL = 'http://pckandap.com/'

def fbauth(request):
    code = request.GET.get('code')
    if code is None:
        args = dict(client_id=APP_ID, redirect_uri=MY_URL, scope="user_likes,friends_likes")
        redirect_url = "https://graph.facebook.com/oauth/authorize?" + urllib.urlencode(args)
        return HttpResponseRedirect(redirect_url)
    else:
        args = dict(client_id=APP_ID, redirect_uri=MY_URL)
        args["client_secret"] = APP_SECRET  
        args["code"] = code
        token_url = "https://graph.facebook.com/oauth/access_token?"+urllib.urlencode(args)
        request.session['access_token'] = urllib.urlopen(token_url).read()[13:-1]
        return HttpResponseRedirect('/dash/likes')
 类似资料:
  • 我在web浏览器中得到以下错误消息 我已经将Firebase web app示例下载到我的本地计算机上,将Firebase控制台的代码片段粘贴到“Database”示例项目的.html文件中,并在控制台中启用了Google作为身份验证方法。 删除代码段可以删除错误,但它根本不起作用(这并不奇怪)。 还尝试了“Auth”示例项目。 我做错了什么?

  • null 脚本'C:\src\flutter\packages\flutter_tools\gradle\flutter.gradle'行:838 出了什么问题: 任务“:app:CompileFlutterBuildreLease”执行失败。 null null 应用程序:Build.Gradle

  • 当我连续发布数据时,我会在C#应用程序上得到发布超时错误,一旦我重新启动应用程序,它会工作几个小时。[注意:由于php需要时间完成任务,所以新的请求都在等待中,它创建队列,等待时间超过2分钟,im出现超时错误]。 我们的两台服务器都使用了最大50%的CPU和RAM使用量 我检查了两个C#代码和PHP代码都工作良好,没有任何问题或bug 提前致谢哥们儿:)

  • 问题内容: 我有一个新的Rails应用程序,该应用程序是在Windows 7下通过进入目录并键入“ rails newapp”创建的。创建过程很好,当我访问根页面时,一切都很好。但是,当我尝试访问将访问数据库的页面时,得到以下信息: 在developer.log中。Mysql在我的机器上运行良好,并且我在其他目录中的其他应用程序中也正在运行,仅此一项是行不通的。有什么想法吗? 问题答案: 这是对我

  • 我有一个ReactJS和Java Spring Boot应用程序,它们都受到KeyCloak11.0.2的保护。 Keycloak在8083端口,ReactJS在3000端口,Spring App在8085端口。如果我尝试使用下面提供的配置,我不能击中我的endpoint,我得到CORS错误。 火狐: 以下是我的前端Keycloak配置。后端是相同的,只是访问类型是机密的,根/基url不同(不是3