【问题标题】:Send a personalized URL to Facebook friends from external website从外部网站向 Facebook 朋友发送个性化 URL
【发布时间】:2011-05-05 15:55:53
【问题描述】:
我正在开发一个具有以下要求的网站:
- 用户可以邀请他们的facebook好友访问网站
- 受邀的朋友会收到一个指向网站的个性化 URL(消息、通知、请求……都无所谓)
示例流程:
1. 约翰访问http://www.mysite.com
2. John 单击 Facebook 连接按钮并使用他的 Facebook 凭据登录
3. John 点击“邀请好友”按钮。出现好友选择对话框
4. John 选择 Mary 并提交邀请/请求/消息
5. Mary 收到如下链接:http://www.mysite.com?name=Mary
6. Mary 在 facebook 中点击链接并被重定向到上面的 URL
7. 我的站点显示:“Hello Mary!”,名称来自 URL 参数
我已经成功完成了步骤 1-4。
我问的是第 5 步。这可能吗?我知道我可以获取多朋友选择器中所选人员的 Facebook ID,并且可以进行 FBQL 查询来检索所选人员的姓名,但是如何自定义发送的 URL?
干杯,
纳乔
【问题讨论】:
标签:
facebook
url
customization
【解决方案1】:
好吧,如果用户要为大量朋友发送邀请,那么这些邀请将不会是“invitee unique”(如@Jimmy 所述)。但是您仍然可以从请求本身中捕获唯一的“朋友 ID”和(我想)名称!
你需要做的是:
- 当朋友点击邀请时,他/她将被重定向到画布页面(或书签页面,如果已坐下)。
- 随着重定向,您将在此处收到邀请号(请求 ID),您可以阅读此请求并从中提取“收件人”字段,然后将朋友重定向到您的网站。
类似:
<?php
if( isset($_REQUEST['request_ids']) ) {
// Requesting an application token
$APPLICATION_ID = "APP_D";
$APPLICATION_SECRET = "APP_SECRET";
$token_url = "https://graph.facebook.com/oauth/access_token?" .
"client_id=" . $APPLICATION_ID .
"&client_secret=" . $APPLICATION_SECRET .
"&grant_type=client_credentials";
$app_token = file_get_contents($token_url);
// You may have more than one request, so it's better to loop
$requests = explode(',',$_REQUEST['request_ids']);
foreach($requests as $request_id) {
// Get the request details using Graph API
$request_content = json_decode(file_get_contents("https://graph.facebook.com/$request_id?$app_token"), TRUE);
// An example of how to get info from the previous call
$to_name = $request_content['to']['name'];
// When all is done, delete the requests because Facebook will not do it for you!
$deleted = file_get_contents("https://graph.facebook.com/$request_id?$app_token&method=delete"); // Should return true on success
echo "<script>top.location.href='http://www.mysite.com?name=" . urlencode($to_name) . "'</script>";
}
}
?>
更多内容请阅读以下内容:
【解决方案2】:
当被推荐的用户登陆您的网站时,您要么需要知道他们的 Facebook 用户 ID,要么需要知道您计划向他们展示的所有信息。使用用户 ID 会更容易、更可扩展,要获得这些信息,您需要先让该用户安装您的应用,然后才能识别他们、查找他们的姓名并说“Hello Mary!”
我在这里要做的是让推荐用户分享为他定制的链接。因此,如果我是 A,并且我正在与朋友分享,我的链接将类似于 http://www.somedomain.com/?ref=A。我分享这个,我的朋友 B 点击链接。当 B 进入安装屏幕时,他安装了,现在我们知道 B 的名字,并且由于我们有 ref 参数,我们知道他点击了我的链接。 (这就是 Groupon 和 Dropbox 处理推荐链接的方式。)
为了更清楚地回答您的问题,否,您使用多朋友选择器发送的每个邀请的邀请链接都必须相同,因此不能选择每个被邀请者的链接。