Facebook SDK - 处理应用程序邀请?

时间:2015-05-08 12:44:05

标签: c# android ios facebook facebook-graph-api

使用Facebook SDK,似乎他们允许您通过AppRequest的{​​{1}}部分邀请您的朋友加入该应用。但是我没有在SDK中看到任何可以奖励用户邀请朋友的地方。我知道这是可能的,因为它已经完成了很多次,所以如何做到这一点?

例如,让我们说:

SDK

我完全迷失在这里,使用任何SDK的示例,无论语言如何,都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

由于Facebook app invites基于AppLinks,因此您需要寻找解决方案。我将通过使用Android示例场景来解释这一点。

构建应用邀请(using the dialog)时,您正在指定AppLinks网址。对于发出邀请的每个用户,甚至每个单独的邀请,此URL都是唯一的。例如:https://www.example.com/invite_applink?invite_id=12345。通过创建一个AppLink网址,例如每个邀请他人的用户,都会将邀请发件人归属地(这就是您所说的内容)嵌入到您的AppLinks网址中。

Facebook应用程序从“应用邀请”部分了解如何打开应用的方式是遵循AppLinks specification。 此规范指出,在位于<head>的HTML文档的https://www.example.com/invite_applink部分中,必须有适当的<meta>数据,用于说明如何打开/深入链接您的应用。其中一部分是al:android:url属性,可以这样使用:<meta property="al:android:url" content="example://invite_from_fb?invite_id=12345" />

观察网址如何包含参数invite_id=12345,其中12345与上面AppLinks网址的invite_id参数中使用的值相同。 当受邀用户现在从深层链接URI example://invite_from_fb?invite_id=12345打开应用程序时,应用程序将从包含此信息的意图打开。

当您的应用Activity打开后,您可以抓住打开Activity的{​​{3}},并从中获取用于打开应用的Intent:{{ 3}}。关于“Uri

上的Android文档的更多信息

此时,将应用邀请归属于用户的ID已从发件人转移到收件人的正在运行的应用中。现在,收件人设备上的应用程序需要调用您的服务器并让它知道用于打开它的哪个invite_id。为了避免多个此类归因源自一个用户(可能已收到来自多个人的邀请),您可以推迟发送此归因数据,直到用户执行某种登录(例如Facebook登录)并且您可以忽略例如第一个之后的所有归因。