我得到了从facebook账户收到邮件的许可。虽然我没能拿到。总是一根空的绳子。这是我的密码。请帮帮我。
我在添加我使用的代码。它是从堆栈溢出复制的。
fbLogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { LoginManager.getInstance().logInWithReadPermissions(LoginActivity.this, Arrays.asList("public_profile","email","basic_info")); } });
callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
GraphRequest.newMeRequest(
loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject user, GraphResponse response) {
if (response.getError() != null) {
// handle error
} else {
socialData = new ArrayList<NameValuePair>();
String email = user.optString("email");
String id = user.optString("id");
String name = user.optString("name");
socialData.add(new BasicNameValuePair("id",id));
socialData.add(new BasicNameValuePair("name",name));
socialData.add(new BasicNameValuePair("email",email));
Log.e("id",id);
Log.e("name",name);
Log.e("email",email);
Log.e("object",user.toString());
// send email and id to your web server
SocialLogin socialLogin = new SocialLogin();
socialLogin.execute("app/social-login");
}
}
}).executeAsync();
}
@Override
public void onCancel() {
Toast.makeText(LoginActivity.this, "Login Cancel", Toast.LENGTH_LONG).show();
}
@Override
public void onError(FacebookException exception) {
Toast.makeText(LoginActivity.this, exception.getMessage(), Toast.LENGTH_LONG).show();
}
});‘
这是我的输出
E/id﹕ 1046433868724117
E/name﹕ Jafer Poovan P
E/email﹕ '发布于 2015-09-07 04:48:33
试着使用这段代码。工作成功了。
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();
}
name = object.getString("name");
email = object.getString("email");
gender = object.getString("gender");
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());
}
});
有关更多信息和完全facebook登录代码Check my answer HERE。
发布于 2015-09-06 15:05:36
https://stackoverflow.com/questions/32424802
复制相似问题