繁体   English   中英

Android解析SDK Facebook登录无法获取电子邮件

[英]android parse sdk facebook login cannot get email

我将解析和facebook sdk集成到我的项目及其工作中,我获得了facebook用户的ID和用户名,我的问题是我什至无法获得任何其他信息,例如电子邮件或性别或任何其他信息,即使我为其添加了权限。

这是许可:

private static final List<String> Permissions = Arrays.asList("public_profile","email","user_friends","user_birthday","user_location","user_relationships");

按钮点击代码:

Button mBtnFb=(Button)findViewById(R.id.mBtnFb);

    mBtnFb.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ParseFacebookUtils.logInWithReadPermissionsInBackground(MainActivity.this,Permissions , new LogInCallback() {
                @Override
                public void done(ParseUser user, ParseException err) {
                    if (user == null) {
                        Log.d("MyApp", "The user cancelled the Facebook login.");
                    } else if (user.isNew()) {
                        Log.d("MyApp", "User signed up and logged in through Facebook!");
                        getUserDetailsFromFB();
                    } else {
                        Log.d("MyApp", "User logged in through Facebook!");
                        getUserDetailsFromParse();
                    }
                }
            });
        }
    });

从facebook获取用户详细信息:

public String name,email;
ParseUser parseUser=new ParseUser();

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

                    try {
                        String id=object.getString("id");
                        String name=object.getString("name");
                        String email=object.getString("email");
                        String gender=object.getString("gender");
                        String birthday=object.getString("birthday");

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

}

我仅获得ID和名称,任何其他信息都给我例外的任何建议?

我遇到了完全相同的问题,这是我解决的方法:

  1. 转到https://developers.facebook.com/
  2. 点击“工具和支持”(位于顶部菜单)
  3. 单击“图形API资源管理器”(在左侧菜单中称为“工具”)
  4. 右上角显示“应用程序:Graph API Explorer”的地方,将其更改为正在使用的应用程序。
  5. 在显示“获取令牌”的位置,单击“获取用户访问令牌”
  6. 勾选“ user_about_me”
  7. 点击“扩展权限”
  8. 勾选“电子邮件”
  9. 点击“获取访问令牌”
  10. Facebook可能会提示您确认。

然后,这应使您的应用程序具有检索facebook用户的电子邮件地址的权限。

希望这可以帮助。

纳撒里亚

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM