繁体   English   中英

Facebook API新闻提要Android

[英]Facebook API news feed Android

我正在尝试通过Android从Facebook的Graph API获取新闻提要。 当我尝试解析此JSON时,我什么也没得到,不是NULL,但是什么也没有。

这是我的代码,可以获取该提要。 该代码来自stackoverflow和Graph API文档的50/50

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_news_feed);
    userProfile = (Profile) getIntent().getParcelableExtra("Profile");
    stringsForList = new ArrayList<>();
    adapter = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_list_item_1, stringsForList);
    newsFeed = (ListView)findViewById(R.id.newsFeed);

    new GraphRequest(
            AccessToken.getCurrentAccessToken(),
            "/me",
            null,
            HttpMethod.GET,
            new GraphRequest.Callback() {
                public void onCompleted(GraphResponse response) {

                    try {
                        JSONObject mainObject = response.getJSONObject();
                        JSONObject feed = mainObject.getJSONObject("feed");
                        JSONArray data = feed.getJSONArray("data");
                        if(data == null) Log.d(LOG_TAG, "data is null");
                        // StringBuilder stringForArray;

                        for(int i = 0; i < data.length(); i++)
                       {
                           //stringForArray = null;
                           JSONObject singleNews = data.getJSONObject(i);
                           if(singleNews == null) Log.d(LOG_TAG, "news is null");



                       }
                    }catch(JSONException ex)
                    {
                        ex.printStackTrace();
                    }


                }
            }
    ).executeAsync();

}

这是我要解析的JSON文件。

"feed": {
"data": [
  {
    "message": "Я їду на фестиваль ЗАХІД",
    "story": "Oleg Misko shared Zaxidfest's photo — with Василь Угринюк and 2 others.",
    "created_time": "2016-06-20T06:55:32+0000",
    "id": "1272345062793233_1291027040925035"
  },
  {
    "story": "Oleg Misko shared Zaxidfest's post.",
    "created_time": "2016-06-20T06:55:01+0000",
    "id": "1272345062793233_1291026900925049"
  },
  {
    "message": "Я їду на фестиваль ЗАХІД",
    "story": "Demian Mysakovets shared Zaxidfest's photo — with Sophia Hoshko and 2 others.",
    "created_time": "2016-06-18T15:27:35+0000",
    "id": "1272345062793233_1289904527703953"
  },
  {
    "story": "Oleg Misko shared Територія твого розвитку's post.",
    "created_time": "2016-06-18T08:55:45+0000",
    "id": "1272345062793233_1289698067724599"
  },
  {
    "story": "Oleg Misko shared JavaRush.RU's photo.",
    "created_time": "2016-06-07T19:58:03+0000",
    "id": "1272345062793233_1282518005109272"
  },
  {
    "story": "Oleg Misko shared a link.",
    "created_time": "2016-03-31T15:42:38+0000",
    "id": "1272345062793233_1234673696560370"
  },
  {
    "story": "Oleg Misko updated his profile picture.",
    "created_time": "2016-03-19T09:53:02+0000",
    "id": "1272345062793233_1220982634596143"
  },
  {
    "message": "posdravliayu.",
    "created_time": "2016-02-19T15:44:14+0000",
    "id": "1272345062793233_1200638139963926"
  },
  {
    "story": "Oleg Misko shared Zaxidfest's video.",
    "created_time": "2016-01-25T09:59:35+0000",
    "id": "1272345062793233_1184872831540457"
  },
  {
    "story": "Oleg Misko shared Територія твого розвитку's photo.",
    "created_time": "2016-01-14T12:35:45+0000",
    "id": "1272345062793233_1178560875504986"
  }
]

Drv,非常感谢您的回答。 问题是我不知道如何将这一系列新闻传递给我的程序。 它什么也没给我。

如果我做这样的事情

Bundle params = new Bundle();
    params.putString("fields", "id,email,gender,name");
    new GraphRequest(AccessToken.getCurrentAccessToken(), "me", params, HttpMethod.GET,
            new GraphRequest.Callback() {
                @Override
                public void onCompleted(GraphResponse response) {
                    if (response != null) {
                        try {
                            JSONObject data = response.getJSONObject();
                            if (data.has("name")) {
                               nameText.setText(data.getString("name"));
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
            }).executeAsync();

它成功地给了我帐户的用户名。 如何传递新闻源? :(

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM