图形API没有返回用户的电子邮件ID [英] Graph api is not returning user email id
本文介绍了图形API没有返回用户的电子邮件ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
int此code GraphUser没有返回电子邮件ID和联系号码,请帮助阅读的电子邮件地址迫切,请帮助我 在此先感谢
code
@覆盖
公共无效的onSaveInstanceState(包outState){
super.onSaveInstanceState(outState);
uiHelper.onSaveInstanceState(outState);
}
私人无效onSessionStateChange(会话的会话,SessionState会状态,例外的例外){
如果(state.isOpened()){
// userInfoTextView.setVisibility(View.VISIBLE);
//请求用户数据,并显示结果
Request.executeMeRequestAsync(会话,新Request.GraphUserCallback(){
@覆盖
公共无效onCompleted(GraphUser用户,响应响应){
如果(用户!= NULL){
//显示分析用户信息
字符串email =(字符串)response.getGraphObject()的getProperty(电子邮件)。
的System.out.println(yahooooooooooo+电子邮件);
buildUserInfoDisplay(用户);
}
}
});
}否则如果(state.isClosed()){
Log.i(TAG注销...);
}
}
私人字符串buildUserInfoDisplay(GraphUser用户){
StringBuilder的用户信息=新的StringBuilder();
//例:类型访问(名)
无需特殊权限 - //
userInfo.append(的String.Format(名称:%s \ñ\ N,
user.getName()));
//例:类型访问(生日)
// - 需要user_birthday许可
userInfo.append(的String.Format(生日:%S \ñ\ N,
user.getBirthday()));
userInfo.append(的String.Format(生日:%S \ñ\ N,
user.getBirthday()));
userInfo.append(的String.Format(性别:%S \ñ\ N,
user.getProperty(性别)));
userInfo.append(的String.Format(Iddddddd:%S \ñ\ N,
user.getId()));
//例:部分类型的访问,以位置字段,
//名称键(位置)
// - 需要user_location许可
userInfo.append(的String.Format(位置:%S \ñ\ N,
。user.getLocation()的getProperty(名字)));
//例:通过属性名访问(区域)
无需特殊权限 - //
userInfo.append(的String.Format(区域设置:%S \ñ\ N,
user.getProperty(区域设置)));
返回userInfo.toString();
}
解决方案
在默认情况下,你不会得到的电子邮件,电子邮件必须指定权限
Session.StatusCallback statusCallback =新Session.StatusCallback()
{
@覆盖
公共无效呼叫(会话的会话,SessionState会状态,例外的例外)
{
如果(session.isOpened())
{
Request.executeMeRequestAsync(会话,新Request.GraphUserCallback()
{
@覆盖
公共无效onCompleted(GraphUser用户,响应响应)
{
如果(用户!= NULL)
{
尝试
{
的System.out.println(图内的Json+ user.getInnerJSONObject());
字符串email = user.getInnerJSONObject()的getString(电子邮件)。
}
}
}
}
}
}
YourActivityName.openActiveSession(这一点,真,statusCallback);
这是我们的 openActiveSession()
在这里我们指定的权限
私有静态会话openActiveSession(活动活动,布尔allowLoginUI,Session.StatusCallback statusCallback)
{
OpenRequest openRequest =新OpenRequest(活动);
openRequest.setPermissions(Arrays.asList(user_birthday,电子邮件));
openRequest.setCallback(statusCallback);
会话会话=新Session.Builder(活动).build();
如果(SessionState.CREATED_TOKEN_LOADED.equals(session.getState())|| allowLoginUI)
{
Session.setActiveSession(会议);
session.openForRead(openRequest);
返回会议;
}
返回null;
}
和里面的 onActivityResult()
不要忘了做
如果(Session.getActiveSession()!= NULL)
{
Session.getActiveSession()onActivityResult(这一点,要求code,因此code,数据)。
}
int this code GraphUser is not returning email-id and contact number please help to read the email address it is urgent please help me thanks in advance
CODE
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
uiHelper.onSaveInstanceState(outState);
}
private void onSessionStateChange(Session session, SessionState state, Exception exception) {
if (state.isOpened()) {
// userInfoTextView.setVisibility(View.VISIBLE);
// Request user data and show the results
Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
// Display the parsed user info
String email= (String) response.getGraphObject().getProperty("email");
System.out.println("yahooooooooooo "+email);
buildUserInfoDisplay(user);
}
}
});
} else if (state.isClosed()) {
Log.i(TAG, "Logged out...");
}
}
private String buildUserInfoDisplay(GraphUser user) {
StringBuilder userInfo = new StringBuilder("");
// Example: typed access (name)
// - no special permissions required
userInfo.append(String.format("Name: %s\n\n",
user.getName()));
// Example: typed access (birthday)
// - requires user_birthday permission
userInfo.append(String.format("Birthday: %s\n\n",
user.getBirthday()));
userInfo.append(String.format("Birthday: %s\n\n",
user.getBirthday()));
userInfo.append(String.format("Gender: %s\n\n",
user.getProperty("gender")));
userInfo.append(String.format("Iddddddd: %s\n\n",
user.getId()));
// Example: partially typed access, to location field,
// name key (location)
// - requires user_location permission
userInfo.append(String.format("Location: %s\n\n",
user.getLocation().getProperty("name")));
// Example: access via property name (locale)
// - no special permissions required
userInfo.append(String.format("Locale: %s\n\n",
user.getProperty("locale")));
return userInfo.toString();
}
解决方案
By default you won't get the email, for email you have to specify permission
Session.StatusCallback statusCallback = new Session.StatusCallback()
{
@Override
public void call(Session session, SessionState state, Exception exception)
{
if(session.isOpened())
{
Request.executeMeRequestAsync(session, new Request.GraphUserCallback()
{
@Override
public void onCompleted(GraphUser user, Response response)
{
if(user != null)
{
try
{
System.out.println("Graph Inner Json"+user.getInnerJSONObject());
String email = user.getInnerJSONObject().getString("email");
}
}
}
}
}
}
YourActivityName.openActiveSession(this, true, statusCallback);
This is our openActiveSession()
where we specify permissions
private static Session openActiveSession(Activity activity, boolean allowLoginUI, Session.StatusCallback statusCallback)
{
OpenRequest openRequest = new OpenRequest(activity);
openRequest.setPermissions(Arrays.asList("user_birthday", "email"));
openRequest.setCallback(statusCallback);
Session session = new Session.Builder(activity).build();
if(SessionState.CREATED_TOKEN_LOADED.equals(session.getState()) || allowLoginUI)
{
Session.setActiveSession(session);
session.openForRead(openRequest);
return session;
}
return null;
}
and inside onActivityResult()
don't forget to do
if(Session.getActiveSession() != null)
{
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
这篇关于图形API没有返回用户的电子邮件ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文