在URL中读取facebook令牌,存储在cookie中,在文件中回显

时间:2013-08-17 18:08:49

标签: php javascript ajax jquery facebook-graph-api

我有一个多部分流程

第1步:在page.php上我唤起了一个facebook弹出认证窗口,其URI转到 page2.php

  

https://facebook.com/dialog/oauth?client_id=ID&redirect_uri=http://domain.com/page2.php?-Your+Special+Token+1170-&type=user_agent&fbconnect=1&scope=publish_stream

page2.php 上的

我想通过从网址中读取并将其存储为Cookie来处理此令牌

<?php

  session_start(); 

 if ( empty($tkn) ) { ?>
<script>
(function () {
  try {
    var q = location.href.split('#');
    var a = q[1];
    var q2 = a.split('=');
    var a2 = q2[1];
    var q3 = a2.split('&');
    var a3 = q3[0];
    setTimeout(function () {
        top.location.replace('http://domain.com/cookie.php?tkn=' + a3);
    }, 200);
} catch (e) {
    top.location.replace('http://domain.com/cookie.php?retry=1&tk=broken_' + encodeURI(e.message));
}
})()
</script><? } else {



    print $_GET['tkn'];


}


  $_SESSION['tkn'] = $tkn;

$tkn = $_POST["tkn"];

if(isset($tkn)) {

    setcookie("tkn", $tkn);
    echo "success";
}

?>

page.php 检测到Cookie并回显令牌$ tkn并重新加载页面

<?php
        session_start();

    ?>

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
 $.post('page2.php',{tkn: tkn}, function(data){ 
    if(data=='success'){
        location.reload(true)
    }
 });
</script>

<?php echo $tkn; ?>

问题是我无法解决任何问题。弹出窗口进入无限错误循环,没有任何内容被刷新或回显。

0 个答案:

没有答案