Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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
Php Facebook Connect:获得电子邮件权限后重定向到特殊URL_Php_Facebook - Fatal编程技术网

Php Facebook Connect:获得电子邮件权限后重定向到特殊URL

Php Facebook Connect:获得电子邮件权限后重定向到特殊URL,php,facebook,Php,Facebook,在我的应用程序中,我向用户请求电子邮件许可: <fb:login-button perms="email">Give me your email</fb:login-button> 我尝试了“auth.sessionChange”和“auth.statusChange”事件,但它们也会在登录/登录时触发 我所需要的是我认为每个FB按钮都有自己的回调函数 thx您需要使用Graph API获取用户的电子邮件地址。有关图形的详细信息确定,然后尝试以下操作: FB.login

在我的应用程序中,我向用户请求电子邮件许可:

<fb:login-button perms="email">Give me your email</fb:login-button>
我尝试了“auth.sessionChange”和“auth.statusChange”事件,但它们也会在登录/登录时触发

我所需要的是我认为每个FB按钮都有自己的回调函数


thx

您需要使用Graph API获取用户的电子邮件地址。有关图形的详细信息

确定,然后尝试以下操作:

FB.login(function(result) {
  if(result.session) {
    location.href = '/login_successful.php'; // Or whatever
  }
},
{perms: 'email'});

亲爱的,捕获登录事件并将用户重定向到您希望这样的位置

window.fbAsyncInit = function() { FB.init({appId: "XXXXXX", status: true, cookie: true, xfbml: true}); FB.getLoginStatus(function(response) { if (response.session) { //here you can redirect the user where do you want to redirect it self.location.href="http://www.yoursite.com/login.php"; } else { } }); FB.Event.subscribe("auth.login", function(response) { window.location.reload(); }); FB.Event.subscribe("auth.logout", function(response) { // to logout self.location.href="http://www.yoursite.com/logout.php"; }); }; (function() { var e = document.createElement("script"); e.type = "text/javascript"; e.src = document.location.protocol + "//connect.facebook.net/en_US/all.js"; e.async = true; document.getElementById("fb-root").appendChild(e); }()); window.fbAsyninit=函数(){ FB.init({appId:“XXXXXX”, 状态:正确, 曲奇:是的, xfbml:true}); FB.getLoginStatus(函数(响应){ if(response.session){ //在这里,您可以将用户重定向到要重定向的位置 self.location.href=”http://www.yoursite.com/login.php"; }否则{ } }); FB.Event.subscribe(“auth.login”),函数(响应){ window.location.reload(); }); FB.Event.subscribe(“auth.logout”),函数(响应){ //注销 self.location.href=”http://www.yoursite.com/logout.php"; }); }; (功能(){ var e=document.createElement(“脚本”); e、 type=“text/javascript”; e、 src=document.location.protocol+ “//connect.facebook.net/en_US/all.js”; e、 异步=真; document.getElementById(“fb根”).appendChild(e); }());
这两个答案都是有用的(对不起,因为声誉问题,我不能投票,我是新用户), 但我是这样解决的:

<script type="text/javascript">
                function chkmyperm() {
                jQuery.get("/user/chkmyperm", function(data){
                    if(data==1) {
                    window.location.reload();
                    }
                });
                }
            </script>

            <fb:login-button perms="email" onlogin="chkmyperm()">E-Mail Adresse freigeben</fb:login-button>

函数chkmyperm(){
jQuery.get(“/user/chkmyperm”,函数(数据){
如果(数据==1){
window.location.reload();
}
});
}
电子邮件地址:freigeben

使用onlogin属性,我回调一个自己的函数,该函数检查(通过ajax调用,调用phpsdkapi)用户是否给了我他的电子邮件权限,如果是,我刷新页面。我这样做是因为这种行为应该只在处理电子邮件权限时发生,而不是在其他事件(如登录/注销)时发生。

是的,我知道这一点。我想知道的是,在用户给我电子邮件许可后,如何将其重定向到特殊页面?在权限弹出窗口打开的那一刻,用户“允许”,弹出窗口关闭,我仍然在同一页上。在pop关闭的那一刻,我想将用户重定向到某个URL。
<script type="text/javascript">
                function chkmyperm() {
                jQuery.get("/user/chkmyperm", function(data){
                    if(data==1) {
                    window.location.reload();
                    }
                });
                }
            </script>

            <fb:login-button perms="email" onlogin="chkmyperm()">E-Mail Adresse freigeben</fb:login-button>