使用Facebook登录到我的应用程序:使用Facebook App时出错 [英] Login to my app using facebook : error when using Facebook App

查看:430
本文介绍了使用Facebook登录到我的应用程序:使用Facebook App时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是屏幕截图使用Facebook凭据登录到我的应用无法正常工作浏览器.但是通过Facebook App登录时会出现错误.它不会自动重定向到我的应用程序,而是显示您当前无法显示您请求的页面.它可能暂时不可用.....".提前致谢. 这是我的LoginActivity:

Here is the Screenshot Logging into my App using Facebook credentials is not working correctly through browsers. But it gives an error when logging in through the Facebook App. It is not automatically redirecting to my App and remains in Facebook by showing "The page you requested cannot be displayed right now. It may be temporarily unavailable.....".like that. Thanks in Advance. Here is my LoginActivity:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
        FacebookSdk.sdkInitialize(getApplicationContext());
        setContentView(R.layout.activity_log);
        loginButton = (LoginButton) findViewById(R.id.login_button);
        loginButton.setReadPermissions("email");
        mail = (EditText) findViewById(R.id.log_mail);
        pass = (EditText) findViewById(R.id.log_pass);
        callbackManager = CallbackManager.Factory.create();


        accessTokenTracker = new AccessTokenTracker() {
            @Override
            protected void onCurrentAccessTokenChanged(
                    AccessToken oldAccessToken,
                    AccessToken currentAccessToken) {
                // Set the access token using
                // currentAccessToken when it's loaded or set.
            }
        };
        // If the access token is available already assign it.
        accessToken = AccessToken.getCurrentAccessToken();

        AppEventsLogger.activateApp(this);
        loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {

                Toast.makeText(getApplicationContext(), "Logged in with fb", Toast.LENGTH_SHORT).show();

                System.out.println("onSuccess");


                String accessToken = loginResult.getAccessToken().getToken();
                Log.i("", accessToken);

                GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {

                    @Override
                    public void onCompleted(JSONObject object, GraphResponse response) {
                        Log.i("LoginActivity", response.toString());
                        // Get facebook data from login
                        Bundle bFacebookData = getFacebookData(object);
                        mail_id= bFacebookData.getString("email");
                        prof_pic= bFacebookData.getString("profile_pic");
                        f_name=bFacebookData.getString("first_name");
                        l_name=bFacebookData.getString("last_name");
                        bFacebookData.putString("img",prof_pic);
                        bFacebookData.putString("mail_id",mail_id);
                        bFacebookData.putString("fname",f_name);
                        bFacebookData.putString("lname",l_name);


                        Intent i = new Intent(LogActivity.this, HomeActivity.class);
//
                            i.putExtras(bFacebookData);
                            startActivity(i);
                        //
                        Toast.makeText(getApplicationContext(),mail_id,Toast.LENGTH_LONG).show();



                    }
                });
                Bundle parameters = new Bundle();
                parameters.putString("fields", "id, first_name, last_name, email,gender, birthday, location"); // Parámetros que pedimos a facebook
                request.setParameters(parameters);
                request.executeAsync();

            }

            @Override
            public void onCancel() {
                Toast.makeText(getApplicationContext(), "Log in Cancelled..!!", Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onError(FacebookException error) {
                Toast.makeText(getApplicationContext(), "Error in log in,error is : " + error, Toast.LENGTH_SHORT).show();

            }

        });


    }

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

    @Override
    public void onDestroy() {
        super.onDestroy();
        accessTokenTracker.stopTracking();
    }

    private Bundle getFacebookData(JSONObject object) {

        try {
            Bundle bundle = new Bundle();
            String id = object.getString("id");

            try {
                URL profile_pic = new URL("https://graph.facebook.com/" + id + "/picture?width=200&height=150");
                Log.i("profile_pic", profile_pic + "");
                bundle.putString("profile_pic", profile_pic.toString());

            } catch (MalformedURLException e) {
                e.printStackTrace();
                return null;
            }

            bundle.putString("idFacebook", id);
            if (object.has("first_name"))
                bundle.putString("first_name", object.getString("first_name"));
            if (object.has("last_name"))
                bundle.putString("last_name", object.getString("last_name"));
            if (object.has("email"))
                bundle.putString("email", object.getString("email"));
            if (object.has("gender"))
                bundle.putString("gender", object.getString("gender"));
            if (object.has("birthday"))
                bundle.putString("birthday", object.getString("birthday"));
            if (object.has("location"))
                bundle.putString("location", object.getJSONObject("location").getString("name"));
            return bundle;
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return null;
    }

推荐答案

由于我使用的是最新版本的android-facebook-sdk,因此我已经更新了手机中的facebook应用程序,此应用程序已解决了该问题.感谢大家support.cheers!

Because i'm using the latest version of android-facebook-sdk,I have updated the facebook application in my phone and it solved the issue.Thanks everyone for the support.cheers!!

这篇关于使用Facebook登录到我的应用程序:使用Facebook App时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆