Android应用:处理在Facebook上发布的应用请求

时间:2013-01-27 17:59:51

标签: android facebook

我经历了各种Facebook tutorials处理Facebook与原生Android应用程序的集成,并成功实现了所有流程,包括Facebook登录,获取用户详细信息,分享,选择朋友。 我遇到了一个用例,其中一个用户发送的app邀请请求是为收件人处理的。

问题陈述: Facebook Send request 教程向朋友发送应用程序请求说明了这对我很好,因为我可以看到成功响应如下。

fbconnect://success?request=<request ID here>&to%5B0%5D=<userID>

但下一步是处理请求。根据教程,一旦收件人用户打开Facebook for Android应用程序并点击通知(我看到左下方菜单 - &gt;应用程序部分),使用包含请求数据的意图启动应用程序,可以如下拉出。

Uri intentUri = getActivity().getIntent().getData();

可以获取更多请求ID(一个或多个),如下所示

String requestIdParam = intentUri.getQueryParameter("request_ids");

在我的情况下,Facebook应用程序启动安装的应用程序,但intentUri(上面列出的语句)本身返回为null。因此,我无法进一步提取请求详细信息。

注意: 我可以确认发布的请求包含完整信息,例如通过传递在发布时获得的硬编码requestID(在作为接收用户登录app后)使用以下方法的数据。

private void getRequestDetails(String inRequestId) {
        Request request = new Request(Session.getActiveSession(), 
            inRequestId, null, HttpMethod.GET, new Request.Callback() {
                @Override
                public void onCompleted(Response response) {
                Log.d (TAG, response.toString());
                }
            });
        // Execute the request asynchronously.
        Request.executeBatchAsync(request);
    }

早期的帮助/指针将受到高度赞赏。此外,有没有办法通过Facebook API查询待处理的应用程序请求,而不是通过Facebook本机应用程序意图调用来调用。

1 个答案:

答案 0 :(得分:0)

这是Facebook的错误。只需在App Dashboard中添加移动网络即可获得request_ids