0

邀请对话框弹出正常并且邀请也被发送。但是,如Requests Dialog Facebook文档(https://developers.facebook.com/docs/reference/dialogs/requests/)中所述,我无法使用redirect_uri发送邀请后将用户重定向到期望的页面。发送邀请后没有重定向或任何内容。facebook request_uri无法正常工作

<div id="fb-root"></div> 
    <script src="http://connect.facebook.net/en_US/all.js"></script> 
    <script> 
     FB.init({ 
     appId : 'app_id', 
     }); 
     function sendRequestViaMultiFriendSelector() { 
     FB.ui({method: 'apprequests', 
      message: 'Invite friends!', 
      request_uri: 'https://apps.facebook.com/myappname/invitesent.php', data: '<?php echo $user_id; ?>', exclude_ids: [<?php echo $friends; ?>] 
     }, requestCallback); 
     } 
     function requestCallback(response) { 
     // Handle callback here 
     } 
    </script> 
+0

request_uri是什么?你的意思是redirect_uri? (另外,除非您打开全屏幕对话框,否则不需要) – Igy 2012-03-13 15:58:43

回答

1

如果您使用JS-SDK,则不需要redirect_uri。这是回调函数的工作,所以在你requestCallback()

function requestCallback(response) { 
    // Handle callback here 
    ... 


    // once done, redirect (outside of Facebook page!) 
    top.location.href = 'http://mydomain.com/nextpage/'; 
} 

或者我想location.href = '';留在Facebook的应用程序框架。

0

当您创建Facebook应用程序时,您是否给过回调画布网址?

+0

我已经定义了Canvas Url,它是应用程序托管位置的链接。我还没有定义任何取消授权回调网址,我认为是当用户删除我的应用程序。我找不到应该在应用程序设置 – 2012-03-13 11:14:19

+0

中创建Facebook应用程序时在哪里定义回调画布网址,在那里您会看到名为“Facebook上的应用程序”的链接,您可以在其中找到“Canvas url”,这是一旦您使用您的应用程序登录Facebook,重定向facebook应用程序的url。 – SAR 2012-03-13 11:21:14

+0

是'Canvas URL'的定义如前所述。这就是为什么应用程序运行良好。 – 2012-03-13 11:22:53

1

正如你已经包含的Facebook的JavaScript SDK在App 和你writen这个代码在脚本

FB.ui({ method: 'apprequests', 
     redirect_uri: 'APP URL', 
     message: 'My Message' 
    }); 

这将重定向到应用程序URL邀请朋友为你的应用,而无需重定向到Facebook的帆布网址。所以即使你使用的数据参数,如

FB.ui({ method: 'apprequests', 
    data: 'APP URL', 
    message: 'My Message' 
}); 

写这个代码在在代码的开始,即在index.php中您的应用着陆页这是不行的。

$requestid=$_GET[request_ids];  
if(!empty($requestid)) 
    {  
     echo "<script> window.top.location.href='APP URL'; </script>";     
    }