将元数据添加到Facebook App邀请

时间:2016-03-14 08:01:34

标签: android facebook

在我的应用程序中发送App邀请时,我正在尝试找到一种向其添加元数据的方法,以便我可以在内部跟踪发送邀请的人以及他们的成功程度(Facebook仅显示对话框打开时的数据和没有办法跟踪特定的漏斗)。

我发送邀请的代码是:

private void openFacebookAppInvite() {
        AppInviteContent content = new AppInviteContent.Builder()
                .setApplinkUrl(FACEBOOK_APP_LINK_URL)
                .setPreviewImageUrl(INVITE_PREVOEW_IMAGE_URL)
                .build();
        // WANT TO ADD METADATA HERE
        AppInviteDialog.show(this, content);
}

1 个答案:

答案 0 :(得分:4)

也许这不是您所希望的答案,但我认为这有助于实现您的要求。

第1部分:使用AppInvite直接发送数据

据我所知,无法直接使用AppInvites创建AppInviteContent.Builder的自定义数据。我将在第3部分中解释一个更复杂的可能性。但是GameRequest可能是你的选择。可以使用setData对象初始化GameRequestDialog。类GameRequestContent.Builder"的方法AppInviteDialog设置了可用于跟踪的可选数据"。

第2部分:跟踪邀请

当然,您可以跟踪用户打开/me/apprequests(通过向您的服务器发出简单请求)。遗憾的是,无法跟踪邀请的用户数量。

但是,在受邀用户接受邀请后,安装并运行移动应用程序(或者在画布上授予您权限,如果您还有画布应用程序),您可以获得所有AppRequests(邀请) )使用Graph APIPOST进行查询。

也可能:

  1. Canvas App: request_ids请求,您的服务器将在受邀用户打开画布页面后获得,其中包含参数AppLinkData.fetchDeferredAppLinkData。这是逗号分隔的app-request-ids列表,可以在图表查询中使用。
  2. 移动应用程序:在邀请用户安装并启动应用程序以响应AppRequest后,您可以从意图或使用{{1}获取app-request-ids }和appLinkData.getTargetUri().getQueryParameter("request_ids")。请参阅文档中的"Supporting incoming links"部分。现在您可以创建图形api请求。
  3. 第3部分:通过App-Link通过AppInvite发送数据

    如第2.2部分所示,受邀用户打开应用后,您将获得targetUrl。此targetUrl在您用于AppInvite的AppLink下找到的AppLinkUrl中指定。使用"Dynamic App Link endpoint",可以将数据发送给被邀请者。 在这里想一想如何实现这个:

    1. 您的服务器使用uri-template POST:http://example.com/users/${USER}/invites/定义端点。 $ {USER}是邀请函发件人的用户名。
    2. 在创建邀请对话框之前,客户端从步骤1向端点发送POST请求,并将获取UUID作为响应,该响应引用计划的邀请和用户。
    3. 服务器定义第二个端点GET:http://example.com/users/${USER}/invites/${UUID}。对此端点的响应是具有已定义AppLink的页面,其中al:android:urlexample://users/${USER}/invites/${UUID} - 当然占位符$ {USER}和$ {UUID}将替换为步骤1和2中的正确值。
    4. 客户端在创建AppInviteContent时使用步骤3中的端点(http://example.com/users/${USER}/invites/${UUID})作为app-link-url。
    5. 受邀用户接受邀请并打开应用。现在我们可以从targetUrl获取UUID(参见步骤2.2 / "Supporting incoming links")。