Kār*_*els 5 php cookies sdk facebook codeigniter
我使用来自最新FB开发者页面的代码.在JS SDK中,我可以登录,获取访问令牌,进行api调用等.
PHP SDK getJavaScriptHelper()为访问令牌返回空.
我检查了fbsr_ {app_id} cookie,但它不在那里.我尝试使用JS创建自己的测试cookie并进行检索并设置它,我可以从PHP访问它,因此它不是浏览器问题.
我已经cookie: true,在JS SDK中设置   了,我使用最新的PHP SKD v5和Graph Api v2.8(在我的开发人员仪表板中设置了相同的内容).
我在wamp服务器localhost上使用CodeIgniter.
我无法思考或找到任何其他东西,整天都在这一天.任何帮助,将不胜感激!
码:
<html>
<body>
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
<p><a href="#" onClick="logInWithFacebook()">Log In with the JavaScript SDK</a></p>
<script>
  logInWithFacebook = function() {
    FB.login(function(response) {
      if (response.authResponse) {
        console.log('You are logged in & cookie set!');
        console.log(response);
        // Now you can redirect the user or do an AJAX request to
        // a PHP script that grabs the signed request from the cookie.
        $.get('<?php echo base_url() ?>index.php/test_facebook/js_login', function(resp){
            console.log('Get response' + resp);
        });
      } else {
        console.log('User cancelled login or did not fully authorize.');
      }
    });
    return false;
  };
  window.fbAsyncInit = function() {
    FB.init({
      appId: '{app-id}',
      cookie: true, 
      version: 'v2.8'
    });
  };
  (function(d, s, id){
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/en_US/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));
</script>
</body>
</html>
和test_facebook/js_login:
<?php
class Test_facebook extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
    }
    public function index()
    {
        $this->load->view('test_facebook');
    }
    public function js_login(){
        # /js-login.php
        require_once( 'vendor/autoload.php' );
        $fb = new Facebook\Facebook([
          'app_id' => '{app-id}',
          'app_secret' => '{app-secret}',
          'default_graph_version' => 'v2.8',
          ]);
        $helper = $fb->getJavaScriptHelper();
        try {
          $accessToken = $helper->getAccessToken();
        } catch(Facebook\Exceptions\FacebookResponseException $e) {
          // When Graph returns an error
          echo 'Graph returned an error: ' . $e->getMessage();
          exit;
        } catch(Facebook\Exceptions\FacebookSDKException $e) {
          // When validation fails or other local issues
          echo 'Facebook SDK returned an error: ' . $e->getMessage();
          exit;
        }
        if (! isset($accessToken)) {
          echo 'No cookie set or no OAuth data could be obtained from cookie.';
          exit;
        }
        // Logged in
        echo '<h3>Access Token</h3>';
        var_dump($accessToken->getValue());
    }
}
UPDATE
我countinued寻找解决方案,我发现这个约服务器IP白名单FB开发者页面.我列出http://localhost:8383/test4/index.php/test_facebook/js_login但仍然返回No cookie set or no OAuth data could be obtained from cookie.
| 归档时间: | 
 | 
| 查看次数: | 898 次 | 
| 最近记录: |