[英]How to get Name of ParseUser from Facebook?
我在嘗試獲取通過 Facebook 登錄的 Parse 用戶的姓名時遇到了大問題。
登錄工作正常,我可以在解析數據瀏覽器上看到用戶令牌,ParseUser.getCurrentUser 返回一個 ParseUser 等等,但我不知道我可以從 facebook 獲取用戶的姓名嗎?
到目前為止,我擁有的代碼是
ParseFacebookUtils.logIn(C_RegisterLogin.this, new LogInCallback()
{
@Override
public void done(ParseUser user, ParseException err)
{
progressdialog.dismiss();
if (user == null)
{
Toast toast = Toast.makeText(getApplicationContext(), "Login via Facebook failed!", Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP, 0, 20);
toast.show();
}
else
{
if (user.isNew())
{
}
List args = new ArrayList<String>();
args.add("name");
JSONObject result = new JSONObject(ParseFacebookUtils.getSession().requestNewReadPermissions(C_RegisterLogin.this, args);
String facebookname = result.optString("name");
Toast toast = Toast.makeText(getApplicationContext(), "Thanks, "+facebookname+". You are now successfully logged in!", Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP, 0, 20);
toast.show();
finish();
startActivity(new Intent(C_RegisterLogin.this, E_SelectJourney.class));
}
}
});
解決了它,只需要它使用 facebook 的 Request.executeMeRequestAsync ,對於它的 session 參數,我使用 session Parse 給我:D
if (ParseFacebookUtils.getSession().isOpened())
{
Request.executeMeRequestAsync(ParseFacebookUtils.getSession(), new Request.GraphUserCallback()
{
@Override
public void onCompleted(GraphUser user, Response response)
{
if (user != null)
{
progressdialog.dismiss();
Toast toast = Toast.makeText(getApplicationContext(), "Thanks, " + user.getName() + ". You are now successfully logged in through Facebook!", Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP, 0, 20);
toast.show();
finish();
startActivity(new Intent(C_RegisterLogin.this, E_SelectJourney.class));
}
}
});
}
Request.executeMeRequestAsync 方法已被棄用,因此對於 facebook sdk 3.21,您需要使用
if (ParseFacebookUtils.getSession().isOpened()){
Request.newMeRequest(ParseFacebookUtils.getSession(), new Request.GraphUserCallback()
{
@Override
public void onCompleted(GraphUser user, Response response)
{
if (user != null)
{
progressdialog.dismiss();
Toast toast = Toast.makeText(getApplicationContext(), "Thanks, " + user.getName() + ". You are now successfully logged in through Facebook!", Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP, 0, 20);
toast.show();
finish();
startActivity(new Intent(C_RegisterLogin.this, E_SelectJourney.class));
}
}
}).executeAsync();}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.