2011-10-03 39 views
1

我已经为Facebook apprequests(的oauth2,图表)如何在接受我们的应用程序发送的应用程序请求后重定向到我的应用程序页面?

一个问题,我发了应用程序的请求给我的朋友B. 乙登录到Facebook和发现我们的应用程序列表请求。 乙点击接受按钮

乙重定向到Facebook的画布页面。我想重新引导到我们的应用程序,而不是Facebook的画布,这是可行的吗?

感谢

+0

这是可行的,只需在用户从请求着陆时执行从画布到应用配置文件页面的重定向。你知道如何处理/删除你的画布页面中的请求吗?你使用哪种语言? –

回答

1

你可以把网址中的数据PARAM

看到这里http://developers.facebook.com/docs/reference/dialogs/requests/下性能在底部。

数据可选的,额外的数据,你可以通过跟踪。这将作为创建的请求对象的一部分被存储在 中。

这会传回给您,您可以使用javascript将location.href传递给数据中的url。

----------这里是我已经在来自Facebook过去

var thisimg = 'AN_IMG'; 
    var thisurl = 'A_URL'; 
    window.sendrequest = function(){ 
      FB.ui({ method: 'apprequests', 
      title: 'A request.', 
     message: 'Rate Me! Request from: ' +thisname+' ', 
     data: ''+thisimg+' '+thisurl+' ', 
     filters: ['all'], 
     }); 
     } 

----------样品与数据PARAM添加使用的样本。

 var thisimg = 'AN_IMG'; 
     var thisurl = 'A_URL'; 
    function sendRequestToManyRecipients() { 
    FB.ui({method: 'apprequests', 
     message: 'My Great Request', 
     data: ''+thisimg+' '+thisurl+' ', 
    }, requestCallback); 
    } 

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

回调时,你可以做一个window.top.location.href = '';与您在数据中传递的网址一致。

注意:请求的默认重定向是画布,不能更改。用户登陆画布后,您将从请求中读取数据参数并将其重定向到您的外部应用程序。

“我没有看到任何其他的方式来做到这一点,因为请求2.0不包括重定向URI的选项。”

+1

对我不起作用 – dexterdeng

+1

dex你可以发布你使用的完整代码吗? –

+1

Shawn,谢谢,我的问题已修复。 再次感谢你 – dexterdeng

1

正如你已经包含的JavaScript的Facebook SDK在你的应用程序,你已经writen此代码为邀请朋友为您的应用脚本

FB.ui({方法: 'apprequests',REDIRECT_URI:“APP网址', message:'My Message'});

这将重定向到程序URL重定向没有向Facebook画布URL.So即使你使用的数据参数,如

FB.ui({方法,这将不起作用:“apprequests”,数据:“APP网址', message:'My Message'});

写这个代码在您的应用程序登陆页面即在index.php中

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

这是一个老问题,但现在有一个简单的解决方案。

在“Facebook画布”下的Facebook应用程序设置中,有一个标题为“移动网站URL”的字段。当用户尝试从移动设备打开您的画布应用程序时,他将被重定向到该URL。

该URL应该指向您应该根据浏览器用户代理重定向到App Store或Play商店(或即将推出的页面)的页面。

相关问题