我经历了各种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本机应用程序意图调用来调用。
答案 0 :(得分:0)
这是Facebook的错误。只需在App Dashboard中添加移动网络即可获得request_ids