如何在Android Facebook API中使用基于光标的分页

时间:2015-02-19 18:10:33

标签: java android facebook-graph-api facebook-android-sdk

我正在尝试使用图表API从我的Facebook新闻Feed中检索项目。我正在使用的代码(未完成)在下面,似乎只返回一个新闻提要帖子。我已阅读有关基于游标的分页的文档,但它没有解释如何实现它,也没有找到任何其他资源来解释这个问题。

// Get items from users news feed
    public void getFeed() {

        Session s = Session.getActiveSession();

        new Request(
                s,
                "/me/home",
                null,
                HttpMethod.GET,
                new Request.Callback() {
                    public void onCompleted(Response response) {
                        /* handle the result */

                        JSONArray json = null;
                        JSONObject current = null;

                        try {
                            json = (JSONArray)response.getGraphObject().getProperty("data");
                        } catch(Exception e) {
                            // TODO
                        }

                        for(int i=0; i<5; i++) {
                            try {
                                current = json.getJSONObject(i);
                                Log.d("Value: ", current.get("message").toString());
                            } catch(Exception e) {
                                // Nothing
                            }
                        }

                    }
                }
        ).executeAsync();
    }

由于我还在尝试,我只是尝试下拉5个新闻Feed项并输出message JSON属性。有人可以告诉我如何正确实现基于游标的分页,一次下拉任意数量的Feed帖子吗?感谢

2 个答案:

答案 0 :(得分:1)

链接中的人正在使用FB-Andriod-SDK 3.0.1 Source

这意味着它正在使用Graph v1.0

FB-Andriod-SDK 3.8及以上版本开始使用Graph v2.0

在Graph v2.0及更高版本中,能够使用&#34; read_stream&#34;许可变得非常有限。这么多,除非你是Facebook工程师,否则你不会得到它。

  

限制使用

     
      
  • 此权限授予在Facebook尚不可用的平台上构建Facebook品牌客户端的应用程序。例如,Android和iOS应用不会获得此权限的批准。此外,Web,桌面,车载和电视应用程序将不被授予此权限。
  •   

Source, Scroll down to "read_stream"

用户/家庭边缘需要&#34; read_stream&#34; (用户是用户ID的占位符或&#34;我&#34;关键字)

  

权限

     
      
  • 查看该人的新闻Feed需要具有 read_stream 权限的用户访问令牌。
  •   

Source

这也扩展到用户/提要边

  

权限

     
      
  • 查看公共链接需要任何有效的访问令牌。
  •   
  • 需要具有read_stream权限的用户访问令牌。
  •   
  • 仅显示作者已授予应用程序read_stream权限的帖子。
  •   

Source

以及用户/帖子边缘

  

这是/ feed边缘的副本,仅显示此人自己发布的帖子。

Source

2015年4月30日,Graph v1.0将完全消失。

  

最新版本的Graph API是v2.2。调用v1.0的应用程序将在2015年4月30日之前升级到v2.0或更高版本。

Source, under "Staying up to date"

可以在此处找到有关此问题的更多有见地的信息。 Read all the comments Emil (FB Engineer) and Simon (Graph Product Manger)是最好的来源

所以它归结为。您正在尝试做Facebook开发的应用程序已经执行的操作,并且他们不希望您这样做。

答案 1 :(得分:0)

首先,你不能使用“我/家”作为电话。它需要“read_stream”权限,你永远不会得到批准。

实际上没有办法自己获取这些数据。你必须使用FB Media Partners

之一

以下是更多信息。 Click here for more info