我对 facebook apprequests 有疑问(oauth2,graph)
我向我的朋友 B 发送了一个应用请求。B 登录 facebook 并在应用列表中找到了我们的请求。B点击接受按钮
B 重定向到 facebook 画布页面。我想重定向到我们的应用程序,而不是 facebook 的画布,这可行吗?
谢谢
我对 facebook apprequests 有疑问(oauth2,graph)
我向我的朋友 B 发送了一个应用请求。B 登录 facebook 并在应用列表中找到了我们的请求。B点击接受按钮
B 重定向到 facebook 画布页面。我想重定向到我们的应用程序,而不是 facebook 的画布,这可行吗?
谢谢
您可以在数据参数中放置一个 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 的选项。”
因为您已经在您的应用程序中包含 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>";
}
这是一个老问题,但现在有一个更简单的解决方案。
在“Facebook Canvas”下的 Facebook 应用程序设置中,有一个名为“Mobile Site URL”的字段。当用户尝试从移动设备打开您的画布应用程序时,他将被重定向到该 URL。
该 URL 应该指向一个页面,您应该从该页面重定向到基于浏览器用户代理的 App Store 或 Play Store(或即将推出的页面)。