Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django FB Graph API登录时重定向isn';行不通_Django_Facebook_Facebook Graph Api - Fatal编程技术网

Django FB Graph API登录时重定向isn';行不通

Django FB Graph API登录时重定向isn';行不通,django,facebook,facebook-graph-api,Django,Facebook,Facebook Graph Api,我目前正在django服务器上运行facebook应用程序。索引页位于localhost:8000/b/,其内容为: <!DOCTYPE html> <html lang="en-US"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script src="http://ajax.googleapis.co

我目前正在django服务器上运行facebook应用程序。索引页位于
localhost:8000/b/
,其内容为:

<!DOCTYPE html>
<html lang="en-US">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<body ng-app="mainApp" ng-controller="mainCtrl">
  <div id='fb-root'></div>
  <button id='login-container' class="btn" ng-click="myFacebookLogin()">Login with Facebook</button>
</body>

<script type='text/javascript'>
var app = angular.module('mainApp', [])
app.controller('mainCtrl', function($scope) {
  $scope.myFacebookLogin = function () {
    FB.getLoginStatus(function(response) {
      console.log(response)
      if (response.status !== 'connected') {
        FB.login(function() {}, {scope: ['user_about_me', 'user_status']})
      }
    })
  }
})

$(document).ready( function() {
  $.ajaxSetup({ cache: true })
  $.getScript('//connect.facebook.net/en_US/sdk.js', function() {
    FB.init({
      appId: 'APP-ID',
      version: 'v2.3' // or v2.0, v2.1, v2.0
    })
  })
})
</script>
</html>

使用Facebook登录
var app=angular.module('mainApp',[])
应用程序控制器('mainCtrl',函数($scope){
$scope.myFacebookLogin=函数(){
FB.getLoginStatus(函数(响应){
console.log(响应)
如果(response.status!=“已连接”){
login(函数(){},{scope:['user\u about\u me','user\u status']})
}
})
}
})
$(文档).ready(函数(){
$.ajaxSetup({cache:true})
$.getScript('//connect.facebook.net/en_US/sdk.js',function(){
FB.init({
appId:'APP-ID',
版本:“v2.3”//或v2.0、v2.1、v2.0
})
})
})
在facebook上的应用程序设置中,我已将
有效OAuth重定向URI
设置为
http://localhost:8000/b/redir
但重定向没有发生。用户登录后仍会显示相同的页面。这可以通过再次单击登录按钮并查看收到的响应来验证。我该如何解决这个问题?我应该手动重定向用户还是在facebook上使用tweak smoething


FWIW,在成功登录后使用
location.href='/b/redir'
执行作业。我只是想知道正确的方法是什么

在应用程序设置中指定
重定向\u uri
,并不意味着用户登录时会在您的页面上发生任何自动重定向。(如果您实际使用重定向版本,则仅用于指定用户可以从FB登录对话框重定向到的有效URL。但在使用JS SDK登录时,这并不直接适用。)。如果您希望发生重定向,那么您必须自己执行,在
FB.getLoginStatus
FB.login
@CBroe-Oh!的回调函数中!很高兴知道我做对了。只是想确保将来不会发生什么事。我将把这个问题留待讨论,以防将来有人会有同样的疑问!