2016-07-20 12 views
0

Ich versuche, News Feed von Graph API von Facebook von Android zu bekommen. Wenn ich versuche, dieses JSON zu parsen, bringt es mir nichts, nicht NULL, aber nichts.Facebook API Newsfeed Android

Das ist mein Code, der diesen Feed bekommt. Der Code wurde 50/50 von Stackoverflow genommen und von Graph-API-Dokumentation

@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(); 

} 

Und hier ist die JSON-Datei zu analysieren ich versuche.

"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" 
    } 
] 
+0

Wie versuchen Sie, Json-Daten nach dem Erhalten von Array-Daten zu holen? Oder erhalten Sie Daten null? – Drv

+0

Ich bekomme nicht null, aber ich weiß nicht, wie man Daten aus dieser JSON-Datei richtig abrufen. I müssen "story" und "created_time" Strings nehmen –

Antwort

0

Drv, vielen Dank für Ihre Antwort. Das Problem ist, dass ich nicht bekomme, wie ich dieses Array von Nachrichten an mein Programm weitergeben kann. Es gibt mir einfach nichts zurück.

Wenn ich etwas tun wie dies

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(); 

Es gibt mir erfolgreich Benutzername Konto zurück. Wie kann ich News Feeds weitergeben? :(