java - Android Facebook sdk GraphRequest 在获取用户信息时返回 null

标签 java android facebook facebook-graph-api facebook-login

我正在尝试使用 Facebook API 允许用户登录我的应用程序,登录操作成功完成,并且我获得了访问 token ,但是当我使用 GraphRequest 获取用户信息时,它的响应和对象返回 null ,我在android开发方面完全是新手。 这是我的代码:

    public class SignIn extends Fragment {

        private LoginButton loginButton;
        private CallbackManager callbackManager;
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState)
        {
            View v =  inflater.inflate(R.layout.fragment_sign_in, container, false);
            Button button = (Button) v.findViewById(R.id.button_signin);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent i = new Intent(getActivity(),Home.class);
                    startActivity(i);
                    getActivity().finish();
                }
            });

            callbackManager = CallbackManager.Factory.create();
            loginButton = (LoginButton) v.findViewById(R.id.facebook_button);
            loginButton.setReadPermissions("email");
            loginButton.setFragment(this);
            loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    GraphRequest request = GraphRequest.newMeRequest(
                            AccessToken.getCurrentAccessToken(),
                            new GraphRequest.GraphJSONObjectCallback() {
                                @Override
                                public void onCompleted(JSONObject object, GraphResponse response) {
=                                    try {
                                        Log.d("id",object.getString("id")) ;
                                        Log.d("email",object.getString("email")) ;

                                    } catch (JSONException e) {
                                        e.printStackTrace();
                                        Toast.makeText(getActivity().getApplicationContext(),e.getMessage(),Toast.LENGTH_LONG).show();
                                    }
                                }
                            });
                    Bundle parameters = new Bundle();
                    parameters.putString("fields", "id,name,link");
                    request.setParameters(parameters);
                    request.executeAsync();
                }

                @Override
                public void onCancel() {
                }

                @Override
                public void onError(FacebookException exception) {
                }
            });
            return v ;
        }

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

build.gradle(项目)(如果需要)

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        mavenCentral()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

最佳答案

我发现我忘了在 list 中添加它:

<activity android:name="com.facebook.FacebookActivity"
    android:configChanges=
        "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
    android:label="@string/app_name" />

关于java - Android Facebook sdk GraphRequest 在获取用户信息时返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45402174/

相关文章:

android - ProgressDialog 不想更新消息

java - 有条件地分配变量以匹配 xslt 模板中的路径

java - 如何在 Tomcat 上运行 Java 应用程序?

java - HashMap 字段不更新

android - 为什么 preferences.getString ("key", "DEFAULT") 总是返回 "DEFAULT"?

ios - ObjC、Facebook 页面 - 发布新闻提要有效,但发布照片无效

java - Eclipse 中的空 .jar 文件

java - 如何解决android.database.sqlite.SQLiteException : no such column: ttd (code 1)

android - 几次尝试后无法看到 Facebook 权限页面

android - 获取 Facebook 的 APP_ID?