0

こんにちは、私は自分のアプリに Facebook のログインを統合しています。私はたくさん検索しましたが、ログインできました。このリンクを使用しました: https://developers.facebook.com/docs/mobile/android/build/#register
ボタンをクリックしたとき次に、アクティビティ(HomeActivity)を開くだけでなく、Facebookダイアログを表示する必要があります。私のコードは次のとおりです。

    public class HomeActivity extends Activity {

     Facebook facebook = new Facebook("114987225319269");

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

        Button more = (Button) findViewById(R.id.button1);
        more.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {

                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() {}
                });
            }
public void onActivityResult(int requestCode, int resultCode, Intent data) {
                super.onActivityResult(requestCode, resultCode, data);

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

        }); 

    }   

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_home, menu);
        return true;
    }
}
4

3 に答える 3

0

このコードを使用

Button more = (Button) findViewById(R.id.button1);
more.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
         if (! facebook.isSessionValid()) {         
             facebook.authorize(HomeActivity.this, PERMISSIONS, new LoginDialogListener()); 
        });
    }

これはログイン ダイアログ リスナーです。

private class LoginDialogListener implements DialogListener {

    public void onComplete(Bundle values) {
        saveCredentials(facebook);
        getAlbumsData task = new getAlbumsData();           
        task.execute();
    }

    public void onFacebookError(FacebookError error) {
        showToast("Authentication with Facebook failed!");
    }

    public void onError(DialogError error) {
        showToast("Authentication with Facebook failed!");
    }

    public void onCancel() {
        showToast("Authentication with Facebook cancelled!");
    }
}
于 2012-09-29T09:15:59.503 に答える
0

必要なものはこれだけです:

public class BaseActivity extends Activity
{

    public AsyncFacebookRunner mAsyncRunner;
    public Facebook facebook;
    public SharedPreferences mPrefs;
    public static String appId = "123344";
    SharedPreferences.Editor editor;


    private void initialize()
    {

        facebook = new Facebook(appId);
        mAsyncRunner = new AsyncFacebookRunner(facebook);

    }

    public void verifyLogin()
    {

        mPrefs = getPreferences(MODE_PRIVATE);
        String accessToken = mPrefs.getString("access_token", null);
        facebook.setAccessToken(accessToken);
        long expires = mPrefs.getLong("access_expires", 0);

        if (accessToken != null)
        {
            facebook.setAccessToken(accessToken);
        }

        if (expires != 0)
        {
            facebook.setAccessExpires(expires);
        }

        if (!facebook.isSessionValid())
        {
            facebook.authorize(this, new String[] {
                "email", "publish_stream", "create_event"
            }, new DialogListener()
            {

                @Override
                public void onCancel()
                {
                    // Function to handle cancel event
                }

                @Override
                public void onComplete(Bundle values)
                {
                    // Function to handle complete event
                    // Edit Preferences and update facebook acess_token
                    editor = mPrefs.edit();
                    editor.putString("access_token", facebook.getAccessToken());
                    editor.putLong("access_expires", facebook.getAccessExpires());
                    editor.commit();
                }

                @Override
                public void onError(DialogError error)
                {
                    // Function to handle error

                }

                @Override
                public void onFacebookError(FacebookError fberror)
                {
                    // Function to handle Facebook errors

                }

            });
        }

    }

}
于 2012-12-31T10:26:29.850 に答える
0

あなたのマニフェストで

<activity
android:theme="@android:style/Theme.Translucent"
android:name=".HomeActivity "
>

これにより、アクティビティのテーマがテーマに変わりますDialog。お役に立てれば...

于 2012-09-29T08:56:47.100 に答える