gpt4 book ai didi

android - 从 Facebook SDK GraphUserCallback 获取出生日期和城镇/城市

转载 作者:太空狗 更新时间:2023-10-29 14:18:08 24 4
gpt4 key购买 nike

我在我的应用程序中设置了 facebook 登录,如下所示,我的想法是登录然后执行 GraphUserCallback 这样我们就可以获得使用信息,然后传递到我自己的注册系统,这样用户可以为我的应用程序设置帐户。

Request.executeMeRequestAsync(session,
new Request.GraphUserCallback() {

@Override
public void onCompleted(GraphUser user,
Response response) {

if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
if (user != null) {
Map<String, Object> responseMap = new HashMap<String, Object>();
GraphObject graphObject = response
.getGraphObject();
responseMap = graphObject.asMap();
Log.i("FbLogin", "Response Map KeySet - "
+ responseMap.keySet());

Session session = Session.getActiveSession();
String email = null;
String token = null;
String username = null;
String gender = null;
String birthday = null;
if (responseMap.get("email") != null) {
email = responseMap.get("email").toString();
username = responseMap.get("first_name").toString()+" "+responseMap.get("last_name").toString();
gender = responseMap.get("gender").toString();
token = session.getAccessToken();
/*birthday = responseMap.get("user_birthday").toString();

Context context = getApplicationContext();
int duration = Toast.LENGTH_SHORT;

Toast toast = Toast.makeText(context, birthday, duration);
toast.show();*/

Intent i = new Intent(LogIn.this, FbLogin2Activity.class);
i.putExtra("Email", email);
i.putExtra("Token", token);
i.putExtra("Username", username);
i.putExtra("Gender", gender);
startActivity(i);
} else {
// Clear all session info & ask user to
// login again
if (session != null) {
session.closeAndClearTokenInformation();
}
}
}
}
});

当用户点击“登录”按钮时:

fblogin.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
Session session = Session.getActiveSession();
if (session == null) {
Session.openActiveSession(LogIn.this, true,
statusCallback);
} else if (!session.isOpened()) {
session.openForRead(new Session.OpenRequest(
LogIn.this).setCallback(statusCallback)
.setPermissions(permissions)
);
}
/*Intent i = new Intent(getApplicationContext(), FbLoginActivity.class);
startActivity(i);*/
}
});

我的权限是:

/***** FB Permissions *****/
permissions = new ArrayList<String>();
permissions.add("email");
permissions.add("user_birthday");
permissions.add("user_location");
/***** End FB Permissions *****/

用户电子邮件已返回并有效,但用户电子邮件或位置均不在 graphusecallback 响应中。

不确定我是否已经发布了所有需要的东西,所以让我知道,但我无法弄清楚为什么它没有返回所有内容

最佳答案

用户的生日将在 birthday 字段中,用户的位置将在 location 字段中(与 user_birthday用户位置)。所以

birthday = responseMap.get("birthday").toString();
location = responseMap.get("location").get("name").toString();

应该可以。

关于android - 从 Facebook SDK GraphUserCallback 获取出生日期和城镇/城市,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19458180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com