在多个页面上重定向facebook iframe应用程序

时间:2012-01-01 23:10:26

标签: php javascript facebook iframe redirect

我的iframe facebook应用程序的小问题。我想在选项卡中的许多fb页面上使用该应用程序(所以我不会知道FB页面的确切URL)。但是,在应用程序请求权限后,重定向存在问题。而不是fb页面,它将用户重定向到我的画布URL,这是错误的!怎么解决?

2 个答案:

答案 0 :(得分:1)

不要将粉丝页面的重定向方法也称为Tabs,只需在java脚本中调用以下方法即可获得权限。

 function getPermission(){

     FB.ui({

       'method': 'permissions.request',

       'perms': 'publish_stream,email,user_photos',



      },

  function(response) {

    if (response.perms != null) {

 // user is already connected
token=response.session.access_token;
uid=response.session.uid;


     }

     else if(response.status=="connected")
     {
token=response.session.access_token;
uid=response.session.uid;

// new user is now connected

     }




            else

            {

// user has not given a permission hence not connected.

                }

 });

return false;

}

答案 1 :(得分:0)

如果您只询问一次登录/权限(这将无法在需要时处理获取权限),这样的事情应该有效:

function withLogin(callback) {
  var ifLogin = function(response, true_cb, else_cb) {
    if(response.authResponse)
      true_cb(null, response);
    else
      else_cb(true, null);
  };

  FB.getLoginStatus(function(response) {
    ifLogin(response, callback, function(err, response) {
      FB.login(
        function(response) {
          ifLogin(response, callback, callback);
        },
        { scope: "email,user_photos" }
      );
    });
  });
}

...
window.fbAsyncInit = function() {
  ...
  withLogin(function(err, response) {
    if(err)
      alert("This only works if you log in!");
    else
      alert("UserId: " + response.authResponse.userID);
  });
};