在接受我们的应用发送的应用请求后,如何重定向到我的应用页面?

时间:2011-10-03 18:47:42

标签: facebook facebook-apps

我对facebook apprequests(oauth2,graph)有一个问题

我向我的朋友B发送了一个应用请求。  B登录facebook并在应用列表中找到我们的请求。  B点击了接受按钮

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

感谢

3 个答案:

答案 0 :(得分:1)

您可以在数据参数中添加网址

请参见底部属性下的http://developers.facebook.com/docs/reference/dialogs/requests/

  

data您可以传递用于跟踪的可选附加数据。这将   存储为创建的请求对象的一部分。

这将传回给您,您可以使用javascript to location.href到数据中的网址。

----------这是我过去使用过的一个例子

    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'],
        });
        }

----------来自Facebook的样本添加了数据参数。

        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 ='';使用您传入数据的网址。

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

“我没有看到任何其他方法来执行此操作,因为requests2.0不包含重定向uri的选项。”

答案 1 :(得分:1)

由于您已经在自己的应用中添加了Facebook javascript SDK,并且已经编写了此代码,以便在脚本中为您的应用邀请朋友

FB.ui({method:'apprequests',redirect_uri:'APP URL', 消息:'我的消息'});

这将重定向到App URL而不重定向到Facebook画布URL。因此,即使您使用数据参数,例如

,这也不起作用

FB.ui({method:'apprequests',data:'APP URL', 消息:'我的消息'});

将此代码写在App登录页面,即index.php

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

答案 2 :(得分:0)

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

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

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