0

AndroidアプリでFacebookログインを使用していますが、以前は正常に機能していました。約 1 か月前からログインが機能しません。フェイスブックのログイン時の機能が一部変更されたそうですが、以前は基本情報と呼ばれていたアクセス権が、メールアドレスや生年月日などの特定の情報のみにアクセスできるようになりました。これが、FB にログインできない理由の 1 つかもしれません。Facebookアカウントのアプリ設定で自分のアプリを他のアプリと比較しました。PFA 2 つのアプリの違い

これは、マイ アプリのアクセス許可を示しています。 これは、他のアプリのアクセス許可の例を示しています

メールアドレス、誕生日などの個々のアクセス許可を変更する方法を知っている人はいますか??

4

1 に答える 1

1
try this
    private void performFacebookLogin()
    {
        Log.d("FACEBOOK", "performFacebookLogin");
        final Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(this, Arrays.asList("email"));
        Session openActiveSession = Session.openActiveSession(this, true, new Session.StatusCallback()
        {
            @Override
            public void call(Session session, SessionState state, Exception exception)
            {
                Log.d("FACEBOOK", "call");
                if (session.isOpened() && !isFetching)
                {
                    Log.d("FACEBOOK", "if (session.isOpened() && !isFetching)");
                    isFetching = true;
                    session.requestNewReadPermissions(newPermissionsRequest);
                    Request getMe = Request.newMeRequest(session, new GraphUserCallback()
                    {
                        @Override
                        public void onCompleted(GraphUser user, Response response)
                        {
                            Log.d("FACEBOOK", "onCompleted");
                            if (user != null)
                            {
                                Log.d("FACEBOOK", "user != null");
                                org.json.JSONObject graphResponse = response.getGraphObject().getInnerJSONObject();
                                String email = graphResponse.optString("email");
                                String id = graphResponse.optString("id");
                                //String facebookName = user.getUsername();
                                System.out.println("Birthday--------------"+user.getBirthday());
                                System.out.println("User ID----------------"+user.getId());
                                System.out.println("LINK---------------------"+user.getLink());
                                System.out.println("username---------------"+user.getUsername());
                                System.out.println("Hashcode----------------"+user.hashCode());
                                System.out.println("Inner JSON--------------"+user.getInnerJSONObject());
                                System.out.println("Location-------------------"+user.getLocation());
                                System.out.println("class------------------------"+user.getClass());
                                System.out.println(user.getProperty("email"));


                                if (email == null || email.length() < 0)
                                {
                                    System.out.println(
                                            "Facebook Login"+
                                                    "An email address is required for your account, we could" +
                                            " not find an email associated with this Facebook account. Please associate a email with this account or login the oldskool way.");

                                    return;
                                }
                            }
                        }
                    });
                    getMe.executeAsync();
                }
                else
                {
                    if (!session.isOpened())
                        Log.d("FACEBOOK", "!session.isOpened()");
                    else
                        Log.d("FACEBOOK", "isFetching");
                }
            }
        });
    }
于 2014-08-12T12:02:54.827 に答える