如何在Facebook App中重定向Facebook登录屏幕

时间:2014-05-02 09:21:37

标签: android facebook login

我创建了一个Android应用程序,因为我想从它重定向Facebook登录屏幕。

如何使它成为可能?

1 个答案:

答案 0 :(得分:0)

这是我的facebook课程,它的工作非常好。试试吧,你会从Simple Facebook学到很多东西。不要考虑下面的一些不寻常的代码。

public class IjoomerFacebookSharingActivity extends Activity {

        private SimpleFacebook simpleFacebook;
        private SimpleFacebookConfiguration.Builder simpleFacebookConfigurationBuilder;
        private SimpleFacebookConfiguration simpleFacebookConfiguration;

        private String IN_MESSAGE;
        private String IN_CAPTION;
        private String IN_NAME;
        private String IN_PICTURE;
        private String IN_LINK;
        private String IN_DESCRIPTION;
        @Override
        public String[] setTabItemNames() {
            return new String[0];
        }

        @Override
        public int setTabBarDividerResId() {
            return 0;
        }

        @Override
        public int setTabItemLayoutId() {
            return 0;
        }

        @Override
        public int[] setTabItemOnDrawables() {
            return new int[0];
        }

        @Override
        public int[] setTabItemOffDrawables() {
            return new int[0];
        }

        @Override
        public int[] setTabItemPressDrawables() {
            return new int[0];
        }

        @Override
        public void onCheckedChanged(RadioGroup radioGroup, int i) {

        }

        @Override
        public int setLayoutId() {
            return R.layout.facebook_main;
        }

        @Override
        public View setLayoutView() {
            return null;
        }

        @Override
        public int setHeaderLayoutId() {
            return 0;
        }

        @Override
        public int setFooterLayoutId() {
            return 0;
        }

        @Override
        public void initComponents() {
            simpleFacebook = SimpleFacebook.getInstance(this);
            simpleFacebookConfigurationBuilder = new SimpleFacebookConfiguration.Builder();
            simpleFacebookConfigurationBuilder.setAppId(getString(R.string.facebook_app_id));
            simpleFacebookConfigurationBuilder.setPermissions(new Permissions[]{Permissions.PUBLISH_ACTION,Permissions.PUBLISH_STREAM,Permissions.EMAIL,Permissions.BASIC_INFO,Permissions.USER_PHOTOS});
            simpleFacebookConfiguration = simpleFacebookConfigurationBuilder.build();
            SimpleFacebook.setConfiguration(simpleFacebookConfiguration);

        }

        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data)
        {
            simpleFacebook.onActivityResult(this, requestCode, resultCode, data);
            super.onActivityResult(requestCode, resultCode, data);
        }

        @Override
        public void prepareViews() {
            getIntentData();
            if(simpleFacebook.isLogin()){
                publishFeed();
            }else{
                simpleFacebook.login(new OnLoginListener());
            }

        }

        private void getIntentData(){
            IN_MESSAGE = getIntent().getStringExtra("IN_MESSAGE")==null ?"":getIntent().getStringExtra("IN_MESSAGE");
            IN_CAPTION = getIntent().getStringExtra("IN_CAPTION")==null ?"":getIntent().getStringExtra("IN_CAPTION");
            IN_DESCRIPTION = getIntent().getStringExtra("IN_DESCRIPTION")==null ?"":getIntent().getStringExtra("IN_DESCRIPTION");
            IN_NAME = getIntent().getStringExtra("IN_NAME")==null ?"":getIntent().getStringExtra("IN_NAME");
            IN_PICTURE = getIntent().getStringExtra("IN_PICTURE")==null ?"":getIntent().getStringExtra("IN_PICTURE");
            IN_LINK = getIntent().getStringExtra("IN_LINK")==null ?"":getIntent().getStringExtra("IN_LINK");
        }

        @Override
        public void setActionListeners() {

        }

        private void publishFeed(){
            final Feed feed = new Feed.Builder()
                    .setMessage(IN_MESSAGE)
                    .setName(IN_NAME)
                    .setCaption(IN_CAPTION)
                    .setDescription(IN_DESCRIPTION)
                    .setPicture(IN_PICTURE)
                    .setLink(IN_LINK)
                    .build();
            simpleFacebook.publish(feed, new onPublishListener());
        }

        class OnLoginListener implements SimpleFacebook.OnLoginListener{


            @Override
            public void onLogin() {
                publishFeed();
            }

            @Override
            public void onNotAcceptingPermissions() {
            }

            @Override
            public void onThinking() {
            }

            @Override
            public void onException(Throwable throwable) {
            }

            @Override
            public void onFail(String reason) {
                IjoomerUtilities.getCustomOkDialog(getString(R.string.friend),reason, getString(R.string.ok), R.layout.ijoomer_ok_dialog, new CustomAlertNeutral() {

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

        class onPublishListener implements SimpleFacebook.OnPublishListener{


            @Override
            public void onComplete(String id) {
                hideProgressDialog();
                IjoomerUtilities.getCustomOkDialog(getString(R.string.friend),getString(R.string.facebook_share_success), getString(R.string.ok), R.layout.ijoomer_ok_dialog, new CustomAlertNeutral() {

                    @Override
                    public void NeutralMethod() {
                        finish();
                    }
                });
            }

            @Override
            public void onThinking() {
                showProgressDialog("Doing Facebook Sharing...",IjoomerFacebookSharingActivity.this,true);
            }

            @Override
            public void onException(Throwable throwable) {
                hideProgressDialog();
                throwable.printStackTrace();
            }

            @Override
            public void onFail(String reason) {
                hideProgressDialog();
                IjoomerUtilities.getCustomOkDialog(getString(R.string.friend),reason, getString(R.string.ok), R.layout.ijoomer_ok_dialog, new CustomAlertNeutral() {

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