【问题标题】:Not getting email from fb sdk in android没有从android中的fb sdk收到电子邮件
【发布时间】:2016-01-23 18:18:11
【问题描述】:

我用不同的代码尝试了很多次,但我仍然没有收到来自 fb 登录的电子邮件。请帮我解决问题。我的测试 fb 帐户也有 2 封电子邮件,但仍然没有收到任何电子邮件。代码粘贴在下面。

public class fbpage extends Activity {

String get_id, get_name, get_gender, get_email, get_birthday,get_locale, get_location,id;
private TextView info;
private LoginButton loginButton;
private CallbackManager callbackManager,mCallbackManager;
private static final String TAG = "FacebookConnect";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    FacebookSdk.sdkInitialize(getApplicationContext());
    setContentView(R.layout.fbpagelayout);
    callbackManager = CallbackManager.Factory.create();

    loginButton = (LoginButton) findViewById(R.id.login_button);
   // List<String> permissionNeeds = Arrays.asList("user_photos","email","user_birthday", "public_profile", "AccessToken");
    loginButton.registerCallback(callbackManager,
            new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {

                    System.out.println("onSuccess");

                    String accessToken = loginResult.getAccessToken()
                            .getToken();
                    Log.i("accessToken", accessToken);

                    GraphRequest request = GraphRequest.newMeRequest(
                            loginResult.getAccessToken(),
                            new GraphRequest.GraphJSONObjectCallback() {
                                @Override
                                public void onCompleted(JSONObject object,
                                                        GraphResponse response) {
                                    Log.i("LoginActivity", response.toString());
                                    try {
                                        id = object.getString("id");
                                        try {
                                            URL profile_pic = new URL(
                                                    "http://graph.facebook.com/" + id + "/picture?type=large");
                                            Log.i("profile_pic",
                                                    profile_pic + "");

                                        } catch (MalformedURLException e) {
                                            e.printStackTrace();
                                        }
                                        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,email,gender, birthday");
                    request.setParameters(parameters);
                    request.executeAsync();
                }

                @Override
                public void onCancel() {
                    System.out.println("onCancel");
                }

                @Override
                public void onError(FacebookException exception) {
                    System.out.println("onError");
                    Log.v("LoginActivity", exception.getCause().toString());
                }
            });


}

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

}

【问题讨论】:

  • 您是否获得了姓名、性别等其他详细信息?
  • 是的,我正在获取所有其他数据。
  • 我遇到过类似的电子邮件问题。我通过从 facebook 验证我的电子邮件 ID 来修复它。如果未验证电子邮件 ID,则返回空。因此,请尝试验证您的电子邮件 ID
  • I/LoginActivity:{Response: responseCode: 200, graphObject: {"id":"922346517844100","gender":"male","name":"Prashant Singh Verma"},错误:空}
  • 我正在使用 2 封电子邮件,并且都由 fb 验证。我浪费了一整天的时间,但在查找电子邮件时没有得到任何解决方案。除了这个 Graphrequest 之外,还有其他方法可以申请吗?

标签: android facebook email facebook-graph-api


【解决方案1】:

您需要添加代码以获得所需的权限。

List<String> permissionNeeds = Arrays.asList("user_photos", "email", "user_birthday", "public_profile", "user_location"); 
mButtonLogin.setReadPermissions(permissionNeeds); 

添加这两行后,您将获得访问电子邮件 ID 的权限。

【讨论】:

    猜你喜欢
    • 2015-11-17
    • 2018-06-01
    • 2014-06-16
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 2011-11-18
    相关资源
    最近更新 更多