Facebook错误:抱歉,尝试登录android时出了点问题

时间:2019-11-21 13:08:41

标签: android facebook facebook-graph-api

我正在将Facebook登录集成到我的应用程序中。我已将所有必需的代码放入片段类中。我还已经在Facebook开发者控制台中注册了我的应用程序。并将fb_app_id放在我的string.xml中。每当我点击Facebook登录按钮时,它都会将我重定向到浏览器上的屏幕,屏幕上显示“抱歉,出了点问题,我们正在研究中”

LogCat消息

  

E / GraphResponse:{HttpStatus:400,errorCode:100,subErrorCode:33,   errorType:GraphMethodException,errorMessage:不支持的get   请求。 ID为'fb_app_id'的对象不存在,不能为   由于缺少权限而加载,或不支持此操作。   请阅读Graph API文档,网址为   https://developers.facebook.com/docs/graph-api}

这是我到目前为止所做的:

我的HomeFragment代码:

内部onCreateView函数

 FacebookSdk.sdkInitialize(getActivity());
        AccessTokenTracker accessTokenTracker = new AccessTokenTracker() {
            @Override
            protected void onCurrentAccessTokenChanged(
                    AccessToken oldAccessToken,
                    AccessToken currentAccessToken) {

                if (currentAccessToken == null) {
                    Toast.makeText(getActivity(), "User logged out successfully", Toast.LENGTH_LONG).show();
                }
            }
        };
        accessToken = AccessToken.getCurrentAccessToken();
        callbackManager = CallbackManager.Factory.create();

        loginButton.setFragment(this);

        loginButton.setReadPermissions(Arrays.asList(new String[]{"user_photos", "email",
                "user_birthday", "public_profile", "AccessToken"}));
        // If you are using in a fragment, call loginButton.setFragment(this);

        // Callback registration
        loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                // App code
                getProfileData();
            }

            @Override
            public void onCancel() {
                // App code
            }

            @Override
            public void onError(FacebookException exception) {
                // App code
            }
        });

此后,我创建了GetProfileData函数和onActivityResult回调:

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

    public void getProfileData() {
        try {
            accessToken = AccessToken.getCurrentAccessToken();

            GraphRequest request = GraphRequest.newMeRequest(
                    accessToken,
                    new GraphRequest.GraphJSONObjectCallback() {
                        @Override
                        public void onCompleted(JSONObject object, GraphResponse response) {

                            try {
                                String name = object.getString("name");
                                Toast.makeText(getActivity(), "name" + name, Toast.LENGTH_LONG).show();


                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                    });
            Bundle parameters = new Bundle();
            parameters.putString("fields",
                    "id,name,email,gender, birthday");
            request.setParameters(parameters);
            request.executeAsync();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

在我的应用程序/成绩文件中

  

实现'com.facebook.android:facebook-android-sdk:5.0.0'

以下是清单文件中application标记下的代码

  

    <activity android:name="com.facebook.FacebookActivity"
        android:configChanges=
            "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name" />
    <activity
        android:name="com.facebook.CustomTabActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="@string/fb_login_protocol_scheme" />
        </intent-filter>
    </activity>

如果我缺少什么,请告诉我。我已将密钥哈希添加到开发人员控制台,并按照官方Facebook开发人员网站(即https://developers.facebook.com/apps/559151138175777/fb-login/quickstart/)中所述的步骤进行操作。

0 个答案:

没有答案
相关问题