Halaman login aplikasi tidak ditampilkan - Android Facebook

Saya mencoba membuka layar login aplikasi di Facebook. Saat aktivitas dimulai, layar menampilkan halaman pemuatan facebook lalu menghilang dan halaman tersebut disetel ke R.layout.main.

Saya pasti melewatkan maksudnya di sini, tetapi bagaimana cara saya masuk ke halaman login aplikasi agar pengguna dapat login.

Saya telah mengikuti tutorial berdasarkan https://developers.facebook.com/docs/mobile/android/build/#enablesso

FYI - Saya telah menghapus APP_ID

package com.example.facebook;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;

import com.facebook.android.DialogError;
import com.facebook.android.Facebook;
import com.facebook.android.Facebook.DialogListener;
import com.facebook.android.FacebookError;


public class MyGreatActivity extends Activity {

    Facebook facebook = new Facebook("APP_ID");
    private SharedPreferences mPrefs;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        /*
         * Get existing access_token if any
         */
        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() {}
            });
        }
    }

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

        facebook.authorizeCallback(requestCode, resultCode, data);
    }
}

Terima kasih atas bantuan Anda.


person user983965    schedule 24.04.2012    source sumber
comment
Apakah Aplikasi asli Facebook terpasang di ponsel Anda? Dan periksa juga Anda mendapatkan kesalahan seperti Login gagal di Logcat   -  person Venky    schedule 24.04.2012
comment
Saya menerima pesan: 04-24 15:54:05.050: D/CLIPBOARD(21628): Sembunyikan dialog Clipboard di Input awal: diselesaikan oleh orang lain...!   -  person user983965    schedule 24.04.2012


Jawaban (4)


Tampaknya Ponsel Anda berisi Aplikasi Asli Facebook, sehingga mungkin menimbulkan kesalahan kunci tidak valid gagal masuk di Logcat.

Jika itu terjadi, itu masalah karena Single Sign On .. Jadi, Anda perlu membuat Android Kunci Hash dan daftar di aplikasi Anda..

Ikuti Langkah-langkah ini untuk melakukannya.

Anda dapat menonaktifkan Sistem Masuk Tunggal dalam satu baris dan tidak perlu menggunakan Buat Kunci Hash tetapi cara ini tidak disarankan untuk menangani.

Tambahkan -1 atau Facebook.FORCE_DIALOG_AUTH ke authorize()

facebookObject.authorize(context, PERMISSIONS,Facebook.FORCE_DIALOG_AUTH,new LoginListener());
person Venky    schedule 24.04.2012
comment
Dalam kasus saya, ada juga satu masalah yaitu saya tidak mengaktifkan Konfigurasi SSO Android saat saya mendaftarkan Aplikasi Facebook. - person Nuraiz; 15.05.2012

Saya tidak yakin di mana saya membaca ini, tapi mungkin ada bug di mana saja, jadi coba setel Kode Aktivitas di otorisasi() ke -1.

gunakan metode: otorisasi (Aktivitas aktivitas, izin String[], int kode aktivitas, pendengar DialogListener)

facebook.authorize(this, new String[] {}, -1, new DialogListener(){..});

Jika Anda menggunakan ActivityGroups, jangan gunakan aktivitas saat ini, melainkan grup :

 facebook.authorize(activity.getParent(), new String[] {}, -1, new DialogListener(){..});

(Mengharapkan induk aktivitas Anda adalah ActivityGroup)

person salcosand    schedule 24.04.2012

Mengubah

facebook.authorize(this, new String[] {}, new DialogListener()..etc 

to

facebook.authorize(this, new String[] {}, Facebook.FORCE_DIALOG_AUTH,
                    new DialogListener())..etc

Ini memaksa dialog untuk ditampilkan.

person onosendai    schedule 24.04.2012

Apakah Anda menyetel <uses-permission android:name="android.permission.INTERNET"/> di manifes? Apakah aplikasi fb sudah terinstal versi terbaru? Apakah Anda mengganti (bukan hanya menghapus) "APP_ID" dengan ID Anda?
Selanjutnya: apakah ada kesalahan yang dicatat di logcat Anda? Dari biasanya ini seharusnya berhasil... Anda berada di uiThread, kode Anda tidak jauh berbeda dari sampleCode... dan hei, ini bukan rocketScience...

person Thkru    schedule 24.04.2012
comment
Ya itu di file manifes, ya sudah diinstal versi terbaru, Ya untuk menggantikan APP_ID - person user983965; 24.04.2012