0

私はFacebook Android SDK チュートリアルに従っており、このステップに至るまでのすべてのコードがアプリに含まれています。アプリを起動すると (携帯電話でテストしますが、エミュレーターでも同じことを行います)、次の画面が表示されます。

ここに画像の説明を入力

わかりました!

ただし、読み込みが完了すると、次の例のようなログイン画面は表示されません。

ここに画像の説明を入力

私はちょうどこれを思いつきます:

ここに画像の説明を入力

コード:

package com.greatapp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import com.facebook.android.*;
import com.facebook.android.Facebook.*;

public class MyGreatActivity extends Activity {

Facebook facebook = new Facebook("MY_APP_ID");

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

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

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

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

わかりました、プロジェクトを削除して、もう一度始めました。この前の画面は何かをしているのですが、このロード画面を何度も何度もリロードし続けています。Facebook のサーバーに 1000 の異なるものを接続しているようで、それぞれに読み込み画面があります。どうすればいいのかわからない。Logcat にエラーはありません。

ここに画像の説明を入力

4

2 に答える 2

0

次のようにコードを変更するだけです。

import com.facebook.android.*;
import com.facebook.android.Facebook.*;

public class MyGreatActivity extends Activity {
public static final String[] PERMISSIONS = new String[] {"email", "publish_checkins", "publish_stream","offline_access"}; 
Facebook facebook = new Facebook("MY_APP_ID");


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

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

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

Facebook.FORCE_DIALOG_AUTH--->Facebookに強制的にログインします

また、新しいユーザーでログインする前に、 facebook.logout(context)メソッドを呼び出して現在のメソッドをログアウトする必要があります。

このメソッドを使用します。

public void Logout() throws MalformedURLException, IOException {
        facebook.logout(mContext);
    }
于 2012-11-24T07:17:15.197 に答える
0

わたしにはできる。logcat にエラー メッセージはありますか? インターネット許可を使用していますか? これらのことを確認してください。

または、すでに完了している可能性があります

または、コードにログを追加します。たとえば、次のようにします。

        facebook.authorize(this, new DialogListener() {
        @Override
        public void onComplete(Bundle values) {
            Log.d("onComplete",""+values);
        }

        @Override
        public void onFacebookError(FacebookError error) {
            Log.d("onFacebookError",""+error);
        }

        @Override
        public void onError(DialogError e) {
            Log.d("onError",""+e);
        }

        @Override
        public void onCancel() {
            Log.d("onCancel","cancel");
        }
    });

logcatで結果を確認してください

于 2012-03-19T18:52:37.707 に答える