相关疑难解决方法(0)

如何使用Facebook PHP SDK 3.0正确处理会话和访问令牌?

在PHP 3.0 SDK中,没有getSession()或任何来自Facebook api外部的会话处理.根据这篇博客文章这个错误报告,几天前facebook的开发者也以某种方式更新了JavaScript sdk .

在过去的几天里,托管的JS SDK引入了一个变化,它破坏了它与当前PHP SDK(2.x和3.x)之间的所有可比性.在其网站上同时使用JS和PHP SDK的开发人员可能会看到服务器端API失败.

但是,我不知道这是否真的会影响我的问题.就像在这个问题的答案中一样,我正在使用PHP检索OAuth对话框的访问令牌,并在会话中保存新的访问令牌.

目前的解决方法

以下代码显示了我如何处理此会话.$_REQUEST['session']是OAuth对话框响应的内容.

if(isset($_REQUEST['session'])) {

    $response = json_decode(stripslashes($_REQUEST['session']), true);

    if(isset($response['access_token'])) {
        $this->api->setAccessToken($response['access_token']);
        $_SESSION['access_token'] = $this->api->getAccessToken();
    }

}
elseif(isset($_SESSION['access_token']) && ! isset($_REQUEST['signed_request'])) 
    $this->api->setAccessToken($_SESSION['access_token']);
elseif(isset($_REQUEST['signed_request'])) {
    Session::invalidate('fbuser');
    $_SESSION['access_token'] = '';
}
Run Code Online (Sandbox Code Playgroud)

以下是我处理用户数据的方法:

try {
    $this->user = Session::getVar('fbuser');
    if ($this->user === false || is_null($this->user)) {
        $facebookUser = $this->api->api('me?fields=id,name,first_name,last_name');
        $this->user = new FBUserModel(array('fbId' => $facebookUser['fbId'], ...));
        Session::setVar('fbuser', $this->user);
    }
}
Run Code Online (Sandbox Code Playgroud)


问题

测试时一切都很好看.仅在发生错误时:第一次设置权限后.现在,由于应用程序在线,似乎每个第二个用户平均发生错误 …

javascript php session facebook

37
推荐指数
2
解决办法
3万
查看次数

如何修复错误'FB'在create-react-app项目中没有定义no-undef?

我使用此链接作为我的起始文件制作了项目.

https://github.com/facebookincubator/create-react-app

但在我试图制作Facebook登录按钮后,跟随他们的官方文档.

componentDidMount(){
    console.log('login mount');
    window.fbAsyncInit = function() {
        FB.init({
            appId      : '320866754951228',
            xfbml      : true,
            version    : 'v2.6'
        });

        FB.getLoginStatus(function(response) {
            //this.statusChangeCallback(response);
        });

    };

    (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'));
}
Run Code Online (Sandbox Code Playgroud)

所以我在刷新浏览器时遇到了这个错误.

Failed to compile.

Error in ./src/components/user_profile/LoginForm.js

/Sites/full_stack_production/xxxxx
  70:13  error  'FB' is not defined  no-undef
  76:13  error  'FB' is not defined  no-undef

? 2 problems (2 errors, 0 …
Run Code Online (Sandbox Code Playgroud)

facebook reactjs eslint create-react-app

14
推荐指数
3
解决办法
7860
查看次数

标签 统计

facebook ×2

create-react-app ×1

eslint ×1

javascript ×1

php ×1

reactjs ×1

session ×1