我浏览了各种 Facebook教程来处理 Facebook 与 Native Android 应用程序的集成,并成功实现了所有流程,包括 Facebook 登录、获取用户详细信息、分享、选择朋友。我被困在用例中,其中一个用户发送的应用程序邀请请求是为收件人处理的。
问题陈述: Facebook发送请求教程很好地解释了向朋友发送应用程序请求,这对我来说很好,因为我可以看到成功响应如下。
fbconnect://success?request=<request ID here>&to%5B0%5D=<userID>
但下一步是处理请求。根据教程,一旦收件人用户打开 Facebook for Android 应用程序并点击通知(我在左上角菜单 -> 应用程序部分下看到),该应用程序将使用包含请求数据的意图启动,如下所示。
Uri intentUri = getActivity().getIntent().getData();
可以获取更多请求 ID(一个或多个),如下所示
String requestIdParam = intentUri.getQueryParameter("request_ids");
在我的情况下,Facebook 应用程序启动已安装的应用程序,但 intentUri(上面列出的语句)本身返回为 null。因此,我无法继续进一步提取请求详细信息。
注意: 我可以确认发布的请求包含完整的信息,例如使用以下方法的数据,方法是传递发布时获得的硬编码 requestID(以接收用户身份登录应用程序后)。
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 原生应用程序意图调用。