Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Facebook-Login automatisieren (unter Benutzung von Facebook SDK)

Das Thema "Facebook-Login automatisieren (unter Benutzung von Facebook SDK)" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 07.06.2011, 21:10   #1 (permalink)
Android-Hilfe.de Mitglied

Modell: Nexus One

Registriert seit: 06.03.2011
Beiträge: 111
Abgegebene Danke: 14
Erhielt 0 Danke für 0 Beiträge
Standard Facebook-Login automatisieren (unter Benutzung von Facebook SDK)

Hallo!

Stecke an einem letzten wichtigen Problem fest, bevor die App deployt werden kann.

Ich habe das Facebook SDK in meine App integriert. Das Ziel ist Facebook-Daten periodisch zu sammeln.

Jetzt hat das FB-Framework 2 Klassen: Facebook.java (für Authorisierung) und AsyncFacebookRunner (Graph API aufrufen).


Ein Facebook Session sieht dabei so aus:

Code:
private Facebook mFacebook = new Facebook(APP_ID);
private AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(mFacebook);

mFacebook.authorize(CurrentActivity.this, PERMS, new LoginDialogListener());

private class LoginDialogListener implements DialogListener {
 
        @Override
        public void onComplete(Bundle values) {

         Log.d(TAG, "Login successful!");
                
          /* Now we start data collection */
          updater = new MyFBDataUpdater();
          updater.start();
          Log.d(TAG, "Updater-Thread created");
        
        }

}

public class MyFBDataUpdater extends Thread    {

        static final long DELAY = 1000 * 10;                    // 10s intervals between consequent HTTP-Requests

        @Override
        public void run() {

            while (true) {

                try {
                    Log.d(TAG, "-- New FBData - Updating session has started --");
                                        
                    /* Start Collection - get data step-by-step after 10s intervals */
                    
                    // Get Profile Information
                    mAsyncRunner.request("me", new ProfileRequestListener());
                    // Sleep
                    Thread.currentThread();
                    Thread.sleep(DELAY);
                }

}

}
Dieser Code hier greift auf den Ast /me des Graph API's zu und ruft die Methode ProfileRequestListener welche die Daten verarbeitet.




Nun, wenn ich den Phone neustarte, komme ich wieder auf den Original-Screen wo mich ich (mit Buttonklick) einloggen muss (neuer Aufruf der .authorize() Methode). Da Facebook Single-Sign-On benutzt und meine credentials im Cache gespeichert werden, muss ich meine Daten nicht mehr explizit eingeben und werde einfach eingeloggt.



Ok, meine Frage ist nun:
Zitat:
Die Daten werden ja sowieso im Cache gespeichert. Deshalb finde ich es störend mich immer wieder mit Klick einloggen zu müssen.

Die Idealvorstellung wäre jetzt ein BroadcastReceiver, der auf die BOOT_COMPLETED Variable hört (d.h. Phone ist neu gestartet worden und der alte FB-Thread updater ist zerstört) und einen neuen Thread startet.

Ich hab's versucht und leider immer die Meldung 'No enclosing instance of type HelloUser is accessible. Must qualify the allocation with an enclosing instance of type FBActivity (e.g. x.new A() where x is an instance of FBActivity).' erhalten

Es scheint ein static-Problem zu sein.

Sieht jemand dennoch/eine andere Möglichkeit um die Automatisierung vorzunehmen??

PS: Die .authorize()-Methode des FB-Frameworks sieht folgendermassen aus:
Code:
   public void authorize(Activity activity, String[] permissions,
            int activityCode, final DialogListener listener) {

        boolean singleSignOnStarted = false;

        mAuthDialogListener = listener;

        // Prefer single sign-on, where available.
        if (activityCode >= 0) {
            singleSignOnStarted = startSingleSignOn(activity, mAppId,
                    permissions, activityCode);
        }
        // Otherwise fall back to traditional dialog.
        if (!singleSignOnStarted) {
            startDialogAuth(activity, permissions);
        }
    }
Das Framework ist im Attachment beigelegt.
Angehängte Dateien
Dateityp: zip facebook-android-sdk.zip (5,42 MB, 21x aufgerufen)

Geändert von sem_thesis (07.06.2011 um 21:55 Uhr)
sem_thesis ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
Facebook-Login mit App nicht möglich rambus Kommunikation 0 03.06.2011 12:02
Facebook und Facebook von HTC? HansWursT HTC Desire HD Forum 6 05.04.2011 22:29
Facebook 1.4 unter Froyo MyMoto Root / Hacking / Modding für Motorola Milestone 14 18.11.2010 08:49
Nimbuzz - Kein Login in Facebook möglich UWdus Kommunikation 4 22.06.2010 15:33
Facebook App: Login Fehler Stellvertreter Kommunikation 0 23.04.2010 01:01




Du liest gerade: "Facebook-Login automatisieren (unter Benutzung von Facebook SDK)" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.