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

使用Facebook SDK ,似乎他们允许您邀请您的朋友通过SDKAppRequest部分join应用程序。 但是,我没有看到SDK中的任何地方,你可以奖励用户邀请朋友。 我知道这是可能的,因为它已经做了很多次了,所以怎么做呢?

例如,让我们说:

 1. User A invites User B to use the application. 2. User B downloads the application. 3. User A receives 100 coins for inviting User B. 

我完全迷失在这里,不pipe语言,使用任何SDK的例子,将不胜感激。

由于Facebook应用邀请基于AppLink ,因此您需要寻找解决scheme。 我将通过使用Android示例场景来解释这一点。

在构build应用程序邀请( 使用对话框 )时,您需要指定一个AppLinks URL。 对于发送邀请的每个用户,或者对每个单独的邀请,该URL都是唯一的。 例如: https://www.example.com/invite_applink?invite_id=12345 : https://www.example.com/invite_applink?invite_id=12345 invite_id https://www.example.com/invite_applink?invite_id=12345 。 通过为邀请其他人的每个用户创build一个AppLinkurl,您可以将邀请 – 发件人归属(您正在说的是您想要的内容)embedded您的AppLinks URL中。

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

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

当您的应用程序的Activity打开时,您可以获取打开该ActivityIntent ,并从中获取用于打开该应用程序的UriIntent.getData() 。 有关“ 允许其他应用启动您的活动 ”的Android文档,

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