如何获得电子邮件ID从Android的Facebook的SDK 4.6.0? [英] How to get email id From Android Facebook SDK 4.6.0?
本文介绍了如何获得电子邮件ID从Android的Facebook的SDK 4.6.0?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
下面是我的code为Facebook登录后获取用户信息。 我试图从用户获得EMAILID我越来越姓名,身份证,但没有得到EMAILID。我曾尝试与登录按钮和登录管理器类既赋予了相同的结果。 现在,如何从响应收到电子邮件ID:
loginButton.registerCallback(callbackManager,新FacebookCallback< LoginResult>(){
@覆盖
公共无效的onSuccess(最终LoginResult loginResult){
新GraphRequest(AccessToken.getCurrentAccessToken()
/我,空,HttpMethod.GET,
新GraphRequest.Callback(){
公共无效onCompleted(
GraphResponse响应){
处理结果
如果(响应!= NULL)
{
//获取用户信息
Toast.makeText(getApplicationContext(),你好以JSON,Toast.LENGTH_LONG).show();
JSONObject的JSON = response.getJSONObject();
// JSONArray jsona = response.getJSONArray();
Log.i(TAG,+ JSON);
// Log.i(TAG,+ JSON);
字符串email = json.optString(电子邮件);
//字符串email = json.optString(电子邮件);
//Log.i("email,+电子邮件);
Log.i(TAG,+电子邮件);
字符串全名= json.optString(姓名);
字符串位置= json.optString(位置);
字符串accessToken = loginResult.getAccessToken()为gettoken()。
字符串USER_ID = json.optString(ID);
Log.i(TAG,+ JSON);
Toast.makeText(getApplicationContext(),全名,Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(),电子邮件,Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(),USER_ID,Toast.LENGTH_LONG).show();
// int型的= 1;
//串lastUpdate = json.getString(updated_time);
// Log.i(电子邮件,+电子邮件);
// Log.i(消息,HELLO);
Log.i(姓名,+全名);
Log.i(ID,+的user_id);
}
}
})executeAsync()。
谢谢.. !!
解决方案
LoginManager.getInstance()。logInWithReadPermissions(WelcomeActivity1.this,(Arrays.asList(public_profile,user_friends user_birthday,user_about_me,电子邮件)));
字符串的电子邮件;
。LoginManager.getInstance()registerCallback(callbackManager,新FacebookCallback< LoginResult>(){
@覆盖
公共无效的onSuccess(LoginResult loginResult){
Log.d(标签,FF FB的onSuccess);
GraphRequest请求= GraphRequest.newMeRequest(loginResult.getAccessToken(),新GraphRequest.GraphJSONObjectCallback(){
@覆盖
公共无效onCompleted(的JSONObject对象,GraphResponse响应){
尝试 {
的String [] splited;
JSONObject的OBJ = object.getJSONObject(图片)getJSONObject(数据)。
如果(object.has(电子邮件))
{
电子邮件= object.getString(电子邮件);
}
其他
{
电子邮件=;
}
}赶上(JSONException E){
// TODO自动生成的catch块
e.printStackTrace();
}
}
});
捆绑参数=新包();
parameters.putString(域,ID,姓名,联系,生日,图片,电子邮件,性别);
request.setParameters(参数);
request.executeAsync();
}
@覆盖
公共无效OnCancel的(){
Log.d(标签,FB OnCancel的」);
//应用code
}
@覆盖
公共无效onerror的(FacebookException除外){
Log.d(标签,FB的onError);
//应用code
}
});
Here is my code for getting user information after facebook login. I am trying to get emailid from user I am getting Name , id , but not getting the emailid .I have tried with the Login Button and Login Manager class both giving the same results . Now how to get email id from response :
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(final LoginResult loginResult) {
new GraphRequest(AccessToken.getCurrentAccessToken(),
"/me", null , HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(
GraphResponse response) {
handle the result
if (response !=null )
{
//GET USER INFORMATION
Toast.makeText(getApplicationContext(),"Hello in JSON",Toast.LENGTH_LONG).show();
JSONObject json = response.getJSONObject();
//JSONArray jsona = response.getJSONArray();
Log.i(TAG,"" +json);
// Log.i(TAG,"" +json);
String email = json.optString("email");
// String email = json.optString("email");
//Log.i("email", "" + email);
Log.i(TAG,"" +email);
String fullName = json.optString("name");
String location = json.optString("location");
String accessToken = loginResult.getAccessToken().getToken();
String user_id = json.optString("id");
Log.i(TAG,"" +json);
Toast.makeText(getApplicationContext(),fullName,Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(),email,Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(),user_id,Toast.LENGTH_LONG).show();
//int type = 1;
// String lastUpdate = json.getString("updated_time");
// Log.i("email", "" + email);
// Log.i("Message", "HELLO");
Log.i("Name", "" + fullName);
Log.i("ID", "" + user_id);
}
}
}).executeAsync();
Thanks..!!
解决方案
LoginManager.getInstance().logInWithReadPermissions(WelcomeActivity1.this, (Arrays.asList("public_profile", "user_friends","user_birthday","user_about_me","email")));
String email;
LoginManager.getInstance().registerCallback(callbackManager,new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.d("tag","FF fb onSuccess");
GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(),new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object,GraphResponse response) {
try {
String[] splited ;
JSONObject obj = object.getJSONObject("picture").getJSONObject("data");
if (object.has("email"))
{
email = object.getString("email");
}
else
{
email = "";
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,link,birthday,picture,email,gender");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
Log.d("tag","fb onCancel");
// App code
}
@Override
public void onError(FacebookException exception) {
Log.d("tag","fb onError");
// App code
}
});
这篇关于如何获得电子邮件ID从Android的Facebook的SDK 4.6.0?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文