未从JavaScript SDK设置Facebook connect fbs_[app_id]cookie

未从JavaScript SDK设置Facebook connect fbs_[app_id]cookie,javascript,facebook,cookies,sdk,connect,Javascript,Facebook,Cookies,Sdk,Connect,我通过JavaScript SDK使用Graph API,如下所示(这是直接来自文档的基本示例): $(文档).ready(函数(){ $('#login')。单击(函数(){ FB.登录(功能(响应){ if(response.authResponse){ log('欢迎!获取您的信息…); FB.api('/me',函数(响应){ log(“很高兴见到你,+response.name+”); }); }否则{ log('用户取消登录或未完全授权'); } }); }) }) 嗨! wind

我通过JavaScript SDK使用Graph API,如下所示(这是直接来自文档的基本示例):


$(文档).ready(函数(){
$('#login')。单击(函数(){
FB.登录(功能(响应){
if(response.authResponse){
log('欢迎!获取您的信息…);
FB.api('/me',函数(响应){
log(“很高兴见到你,+response.name+”);
});
}否则{
log('用户取消登录或未完全授权');
}
});
})
})
嗨!
window.fbAsyninit=函数(){
FB.init({
appId:'249274258430595',
曲奇:是的,
状态:正确,
xfbml:是的,
真的吗
});
};
也可以在这里进行现场测试:

未设置后端访问API(fbs_249274258430595)所需的此cookie

只有名为fbsr_249274258430595的东西存在,这不是我需要的。我用Firebug的FireCookie扩展测试了这个

我真的不明白这个基本示例是如何工作不正常的——这意味着我想从后端代码(PHP、Ruby等)使用API

有什么想法吗

谢谢大家!


另一方面,David

我最终设置了自己的cookie,服务器端可以读取:

我有一个复选框,询问用户是否希望在fb上共享,下面是代码:

  function setFbCookies(response) {
    Cookie.set('fb_access_token', response.authResponse.accessToken, {path: '/'})
    Cookie.set('fb_user_id', response.authResponse.userID, {path: '/'})
  }

  when('#share_on_fb', function(checkbox) {
    checkbox.observe('change', function(ev) {
      if(checkbox.getValue()) {
        FB.getLoginStatus(function(response) {
          if (response.authResponse) {
            setFbCookies(response)
          } else {
            FB.login(function(response) {
              if (response.authResponse) {
                setFbCookies(response)
              } else {
                checkbox.checked = false
              }
            }, {scope: 'publish_stream'});
          }
        })
      }
    })
  })
以下是fbs_uxxxxxCookie未设置的原因:


看起来,如果您使用誓言=false,那么它确实会被设置,但这只在10月1日之前有效。关于如何从新的fbsr_uuxxxxxxcookie中获取加密的访问令牌,仍然没有任何文档。

使用过时的PHP SDK时,我也遇到了同样的情况(
  function setFbCookies(response) {
    Cookie.set('fb_access_token', response.authResponse.accessToken, {path: '/'})
    Cookie.set('fb_user_id', response.authResponse.userID, {path: '/'})
  }

  when('#share_on_fb', function(checkbox) {
    checkbox.observe('change', function(ev) {
      if(checkbox.getValue()) {
        FB.getLoginStatus(function(response) {
          if (response.authResponse) {
            setFbCookies(response)
          } else {
            FB.login(function(response) {
              if (response.authResponse) {
                setFbCookies(response)
              } else {
                checkbox.checked = false
              }
            }, {scope: 'publish_stream'});
          }
        })
      }
    })
  })