1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Probleme bei Facebook-Integration

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von T.U.S.O., 23.04.2012.

  1. T.U.S.O., 23.04.2012 #1
    T.U.S.O.

    T.U.S.O. Threadstarter Neuer Benutzer

    Beiträge:
    1
    Erhaltene Danke:
    0
    Registriert seit:
    23.04.2012
    Hallo Leute
    wir entwickeln zur Zeit mit Eclipse eine App für unsere Schule. Hier bin ich für die Facebook-Integration zuständig. Dabei habe ich folgenden Guide benutzt: Android Probleme bei Facebook Integration - java-forum.org
    Leider zeigt mir Eclipse nach kopieren der Codes verschiedene Fehler an.
    Hier erstmal der gesamte Code der relevanten Klasse:
    package pu.app;

    import android.app.Activity;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import com.facebook.android.*;
    import com.facebook.android.Facebook.*;

    public class GymTriStart extends Activity{

    Facebook facebook = new Facebook("pu.app");
    String FILENAME = "AndroidSSO_data";
    private SharedPreferences mPrefs;

    Button kalender;
    Button vertretung;
    Button anfahrt;
    Button raumplan;

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button kalender = (Button)findViewById(R.id.kalender);
    Button vertretung = (Button)findViewById(R.id.vertretung);
    Button anfahrt = (Button)findViewById(R.id.anfahrt);
    Button raumplan = (Button)findViewById(R.id.raumplan);

    kalender.setOnClickListener(menu);
    vertretung.setOnClickListener(menu);
    anfahrt.setOnClickListener(menu);
    raumplan.setOnClickListener(menu);

    facebook.authorize(this, new DialogListener() {
    @Override
    public void onComplete(Bundle values) {}

    @Override
    public void onFacebookError(FacebookError error) {}

    @Override
    public void onError(DialogError e) {}

    @Override
    public void onCancel() {}
    });






    facebook.authorize(this, new String[] { "email", "publish_checkins" },

    new DialogListener() {
    @Override
    public void onComplete(Bundle values) {}

    @Override
    public void onFacebookError(FacebookError error) {}

    @Override
    public void onError(DialogError e) {}

    @Override
    public void onCancel() {}
    }
    );}




    mPrefs = getPreferences(MODE_PRIVATE);
    String access_token = mPrefs.getString("access_token", null);
    long expires = mPrefs.getLong("access_expires", 0);
    if(access_token != null) {
    facebook.setAccessToken(access_token);
    }
    if(expires != 0) {
    facebook.setAccessExpires(expires);
    }

    /*
    * Only call authorize if the access_token has expired.
    */
    if(!facebook.isSessionValid()) {

    facebook.authorize(this, new String[] {}, new DialogListener() {
    @Override
    public void onComplete(Bundle values) {
    SharedPreferences.Editor editor = mPrefs.edit();
    editor.putString("access_token", facebook.getAccessToken());
    editor.putLong("access_expires", facebook.getAccessExpires());
    editor.commit();
    }

    @Override
    public void onFacebookError(FacebookError error) {}

    @Override
    public void onError(DialogError e) {}

    @Override
    public void onCancel() {}
    });
    }
    };


    public OnClickListener menu = new OnClickListener()
    {
    @Override
    public void onClick(View v)
    {
    Intent intent;
    switch (v.getId())
    {
    case R.id.kalender: intent = new Intent(GymTriStart.this, kalender.class); break;
    case R.id.vertretung: intent = new Intent(GymTriStart.this, vertretung.class); break;
    case R.id.anfahrt: intent = new Intent(GymTriStart.this, anfahrt.class); break;
    case R.id.raumplan: intent = new Intent(GymTriStart.this, raumplan.class); break;
    default: intent = new Intent (GymTriStart.this, GymTriStart.class);
    }
    startActivity(intent);
    }

    };

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    facebook.authorizeCallback(requestCode, resultCode, data);
    }
    mAsyncRunner.logout(getContext(), new RequestListener() {
    @Override
    public void onComplete(String response, Object state) {}

    @Override
    public void onIOException(IOException e, Object state) {}

    @Override
    public void onFileNotFoundException(FileNotFoundException e,
    Object state) {}

    @Override
    public void onMalformedURLException(MalformedURLException e,
    Object state) {}

    @Override
    public void onFacebookError(FacebookError e, Object state) {}
    });



    }Wie man sieht sind auch Teile unserer App enthalten, die aber alle funktionieren. Im Facebook Code markiert er folgende Fehler:
    1.)Bei Schritt 6.6 soll man wieder einiges an Code einfügen. Ich habe alles eingefügt, allerdings meldet Eclipse Fehler in der Codezeile mPrefs = getPreferences(MODE_PRIVATE); .
    Bei "getPreferences" sagt Eclipse "Return type for the method is missing"
    Als Fixes bietet er "set method return type to void" und "change to constructor", wobei beides nicht geholfen hat.
    Bei "MODE_PRIVATE" kommt der Fehler "MODE_PRIVATE cannot be resolved to a type".
    Als Fixes schlägt er hier beispielsweise "create class/interface/enum" und "add type parameter MODE_PRIVATE to 'Name meiner Klasse'" vor.

    2.) Bei Schritt 7 bekomme ich in der Zeile mAsyncRunner.logout(getContext(), new RequestListener() { ebenfalls den Fehler "Return type for the method is missing".

    Ich hoffe Ihr könnt mir helfen und freue mich über schnelle Lösungsvorschläge, da wir nicht mehr lange Zeit haben.
     

Diese Seite empfehlen