相关疑难解决方法(0)

如何使用Facebook Android sdk 4.0中的图形请求获取记录用户的电子邮件地址

我试图通过Facebook(sdk 4.0)登录我的Android应用程序后获取用户的电子邮件地址.我读过很多帖子都在问同样的事情,但我仍然无法让它发挥作用.我只需使用代码登录用户

LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends", "email"));
Run Code Online (Sandbox Code Playgroud)

然后我用.做了Graph API请求

LoginManager.getInstance().registerCallback(fbCallbackManager,
            new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    System.out.println(loginResult.getAccessToken().toString());

                    GraphRequest request = GraphRequest.newMeRequest(
                            loginResult.getAccessToken(),
                            new GraphRequest.GraphJSONObjectCallback() {
                                @Override
                                public void onCompleted(
                                        JSONObject object,
                                        GraphResponse response) {
                                    System.out.println(object.toString());

                                }
                            });
                    Bundle parameters = new Bundle();
                    parameters.putString("fields", "email");
                    request.setParameters(parameters);
                    request.executeAsync();
                }

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

                @Override
                public void onError(FacebookException exception) {
                    // App code
                }
            });
Run Code Online (Sandbox Code Playgroud)

输出就是

{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[public_profile, contact_email, user_friends, email, basic_info]}
{"id":"xxxxxxxxxxxxxxx"}
Run Code Online (Sandbox Code Playgroud)

即使我删除了"fields"部分,我也会获得一个带有一堆用户公共信息的JSON,但从未收到电子邮件字段.我正在我自己的Facebook帐户上测试这个,我确实有一个与之关联的电子邮件地址.

android facebook facebook-graph-api facebook-sdk-4.0

15
推荐指数
2
解决办法
2万
查看次数

Android - 如何使用facebook sdk 4+获取用户电子邮件

我正在尝试从我正在开发的Facebook用户电子邮件.问题是,我可以获得名称和其他所有内容,但不是电子邮件.我已经在这里查找了所有常见问题,我看到了很多方法,但没有人在我的应用程序上工作.我希望你能帮我一臂之力.

LoginActivity.java(在创建时)

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FacebookSdk.sdkInitialize(getApplicationContext());
        setContentView(R.layout.activity_login);
        // Set up the login form.

//        AppEventsLogger.activateApp(this);
        mEmailView = (AutoCompleteTextView) findViewById(R.id.email);
        populateAutoComplete();

        loginButton = (LoginButton) findViewById(R.id.login_button);
        loginButton.setReadPermissions(Arrays.asList(
                "public_profile", "email", "user_birthday", "user_friends"));
        // Callback registration
        loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                // App code
                GraphRequest.newMeRequest( loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
                            @Override
                            public void onCompleted(JSONObject me, GraphResponse response) {
                                if (response.getError() != null) {
                                    // handle error
                                } else {
                                    String email = me.optString("email");
                                    String id = me.optString("id"); …
Run Code Online (Sandbox Code Playgroud)

android facebook

4
推荐指数
1
解决办法
2296
查看次数