1

我对 facebook apprequests 有疑问(oauth2,graph)

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

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

谢谢

4

3 回答 3

1

您可以在数据参数中放置一个 url

请参阅此处http://developers.facebook.com/docs/reference/dialogs/requests/在底部的属性下。

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

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

----------这是我过去使用的示例

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

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

“我没有看到任何其他方法可以做到这一点,因为 requests2.0 不包括重定向 uri 的选项。”

于 2011-10-03T18:59:14.040 回答
1

因为您已经在您的应用程序中包含 Facebook javascript SDK,并且您已经编写了此代码以在脚本中为您的应用程序邀请朋友

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

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

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>";
}
于 2013-04-03T09:44:39.167 回答
0

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

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

该 URL 应该指向一个页面,您应该从该页面重定向到基于浏览器用户代理的 App Store 或 Play Store(或即将推出的页面)。

于 2015-09-25T13:51:04.530 回答