简体   繁体   English

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

[英]How to redirect Facebook Login screen in Facebook App

I have created an android app, in that I wants to redirect Facebook Login screen from it. 我创建了一个android应用,因为我想从中重定向Facebook登录屏幕。

How to make it possible ? 如何使其成为可能?

Here is my facebook class, and its working very fine. 这是我的facebook课,它的工作非常好。 Just try it, you will learn lots of things from Simple Facebook. 只需尝试一下,您就会从Simple Facebook中学到很多东西。 Dont consider some unusual code from below. 不要考虑下面的一些异常代码。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM