【问题标题】:Android : Facebook Sdk Unable to get email idAndroid:Facebook Sdk 无法获取电子邮件 ID
【发布时间】:2016-10-14 07:46:57
【问题描述】:

我用这个来登录FB:

LoginManager.getInstance().logInWithReadPermissions(FindFriendActivity.this, Arrays.asList("public_profile", "user_friends", "email"));

FacebookSdk.sdkInitialize(this.getApplicationContext());
        callbackManager = CallbackManager.Factory.create();
        LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>()
                {
                    @Override
                    public void onSuccess(LoginResult loginResult)
                    {
                        Log.d("Success", "Login");
                        GraphRequest graphRequestAsyncTask = new GraphRequest(
                                loginResult.getAccessToken(), "/me/friends", null, HttpMethod.GET, new GraphRequest.Callback()
                        {
                            public void onCompleted(GraphResponse response)
                            { 
                               JSONArray rawName = response.getJSONObject().getJSONArray("data");
                            }
                        }
                        );
                        Bundle parameters = new Bundle();
                        parameters.putString("fields", "id,name,picture,email");
                        graphRequestAsyncTask.setParameters(parameters);
                        graphRequestAsyncTask.executeAsync();
                    }

                    @Override
                    public void onCancel()
                    {
                        Utilities.ShowToast(mContext, "Facebook Login cancel");
                    }

                    @Override
                    public void onError(FacebookException exception)
                    {
                        Utilities.ShowToast(mContext, exception.getMessage());
                    }
                }
        );


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

清单:

<meta-data
            android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/facebook_app_id"/>

 <uses-permission android:name="android.permission.INTERNET"/>

回应:

{Response:  responseCode: 200, graphObject: {"data":[{"id":"10210065337685894","name":"abc","picture":{"data":{"is_silhouette":false,"url":"https:\/\/fbcdn-profile-a.akamaihd.net\/hprofile-ak-xlp1\/v\/t1.0-1\/p50x50\/13501928_10209152837153951_2277267834804945940_n.jpg?oh=1fdb4269d216309e39afe4fc9460011f&oe"}}},{"id":"1249098285123628","name":"xyz","picture":{"data":{"is_silhouette":false,"url":"https:\/\/fbcdn-profile-a.akamaihd.net\/hprofile-ak-xfp1\/v\/t1.0-1\/p50x50\/13501829_1199623916737732_4120441565269954276_n.jpg?oh=d030d56a261964d37ffe287887122fba&oe=58ACFF22&__gda__=1486855096_"}}},{"id":"901840776615466","name":"pqr","picture":{"data":{"is_silhouette":false,"url":"https:\/\/fbcdn-profile-a.akamaihd.net\/hprofile-ak-xaf1\/v\/t1.0-1\/c0.0.50.50\/p50x50\/48142_460427077423507_21768463_n.jpg?oh=3801d55da3bca5a30546e627f3f068f9&oe"}}}],"paging":{"cursors":{"before":"QVFIUkdhcmpmOXdFVVRDSlppQjMxR0FEc2NTNW82bnQzaUZAFUmhmRUtqX0JaV25vV1pvalFoVm11clpvQm9tOXFsRkEZD","after":"QVFIUnZAsN0RReThOMkEyaUZAYQUJuVFRma0JiMU4wQXVGaTNTd2xORjlFdmpUR0FSOEtPbEw1WjMtRWhOMF82czZAWWVNWMktYMlV6Tzk4ZAGEwOUdNRllveGdB"}},"summary":{"total_count":6}}, error: null}

【问题讨论】:

标签: android facebook facebook-graph-api


【解决方案1】:

如果您请求电子邮件许可,则不能保证您会获得电子邮件地址。例如,如果有人使用电话号码而不是电子邮件地址注册 Facebook,则电子邮件字段可能为空。

阅读更多here

【讨论】:

  • 在这种情况下,电子邮件地址应该返回空。对于我的朋友,有可用的电子邮件地址仍然没有回复。
  • @Apurvak 你的朋友也应该将他们的电子邮件设置为公共财产(通过 facebook 设置)或者电子邮件仍然无法访问
  • @Beloo 谢谢,但在将电子邮件访问权限更改为公共后,它仍然没有回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-04
  • 1970-01-01
  • 2015-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多