簡體   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