S
sem_thesis
Fortgeschrittenes Mitglied
- 0
Ich schreibe eine Facebook-basierte App, welche nach Login User-Daten von Facebook sammelt.
Dabei stütze ich mich auf der Facebook SDK Framework, welche Login/Logout/HTTP-Requests schicken und empfangen managt (mithilfe der Klasse AsyncFacebookRunner.java und Facebook.java).
Ich muss nur 2 Instanzen der beiden Klassen erstellen und die gegebenen Funktionen benutzen.
Mein Code macht folgendes:
1) FB Login
2) Beim Klick auf Menüoption wird ein HTTP-Request geschickt und in der entsprechenden Klasse bearbeitet.
Hier ist das Beispiel um User-Event zu sammeln:
Was der Code macht ist, er erstellt beim MenüOptionklick eine Instanz der EventRequestListener-Klasse, welche den HTTP-Response in eine Klasse hineinschreibt...
Langer Rede, kurzer Sinn.
Was ich will ist das diese Instanz nicht per Mausklick sondern periodisch (sagen wir jede 4h kreeiert wird und Daten sammelt).
Dabei stütze ich mich auf der Facebook SDK Framework, welche Login/Logout/HTTP-Requests schicken und empfangen managt (mithilfe der Klasse AsyncFacebookRunner.java und Facebook.java).
Ich muss nur 2 Instanzen der beiden Klassen erstellen und die gegebenen Funktionen benutzen.
Mein Code macht folgendes:
1) FB Login
2) Beim Klick auf Menüoption wird ein HTTP-Request geschickt und in der entsprechenden Klasse bearbeitet.
Hier ist das Beispiel um User-Event zu sammeln:
Code:
private Facebook mFacebook;
private AsyncFacebookRunner mAsyncRunner;
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
switch (itemId) {
.......
case MyClassName.GET_EVENTS:
this.mAsyncRunner.request("me/events", new EventRequestListener());
break;
}
}
private class EventRequestListener implements RequestListener {
@Override
public void onComplete(String response, Object state) {
try {
// process the response here: executed in background thread
Log.d(TAG, "Event Response: " + response.toString());
final JSONObject json = new JSONObject(response);
JSONArray d = json.getJSONArray("data");
Log.d(TAG, "Number of Events: " + d.length());
for (int i = 0; i < d.length(); i++) {
JSONObject event = d.getJSONObject(i);
FbEvent newEvent = new FbEvent(event.getString("id"),
event.getString("name"),
event.getString("start_time"),
event.getString("end_time"),
event.getString("location"));
events.add(newEvent);
}
} catch (JSONException e) {
Log.w(TAG, "JSON Error in response");
}
}
... Other RequestListener Methods...
}
Langer Rede, kurzer Sinn.
Was ich will ist das diese Instanz nicht per Mausklick sondern periodisch (sagen wir jede 4h kreeiert wird und Daten sammelt).
Ist das möglich? Wenn ja, wie?this.mAsyncRunner.request("me/events", new EventRequestListener())