我对facebook apprequests(oauth2,graph)有一个问题
我向我的朋友B发送了一个应用请求。 B登录facebook并在应用列表中找到我们的请求。 B点击了接受按钮
B重定向到Facebook画布页面。我想重新发布我们的应用程序,而不是facebook的画布,这是可行的吗?
感谢
答案 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商店(或即将推出的网页)的网页。