我正在尝试在用户已登录时让用户收到电子邮件。我已经能够在用户已登录但无法获得用户的电子邮件或姓名时启动新活动。下面是用户已登录时启动活动的代码。
AccessToken accessToken = AccessToken.getCurrentAccessToken();
// If already logged in,start new activity
if (accessToken != null)
{
Intent intent = new Intent(LoginActivity.this,HomePage.class);
startActivity(intent);
}
答案 0 :(得分:2)
确保您在登录时要求提供电子邮件:
...logInWithReadPermissions(this, Arrays.asList("email"));
使用您当前的AccessToken创建GraphRequest:
GraphRequest request = GraphRequest.newMeRequest(
AccessToken.getCurrentAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
Log.d("jsonresponse", object.toString());
}
});
您可以在json响应中指定所需的字段:
Bundle parameters = new Bundle();
parameters.putString("fields", "first_name, id, email");
request.setParameters(parameters);
request.executeAsync();
在Facebook文档上搜索我发现Profile类只返回名称,姓氏和图片等基本信息。也许这是再次收到电子邮件的方式。
希望它有效。