Ich schreibe dieses Stück Code, in dem während der Neuanmeldung - Benutzer klickt Login und dann LoginManager
kommt heraus zu sagen, um fortzufahren. Sobald Sie darauf klicken, wird der Benutzer zum Diagrammanforderungsteil umgeleitet. In dieser Situation, wenn ich überprüfe, ob Profile.getCurrentProfile()
, gibt es null zurück. Während Wenn nach dem Zurückkehren zum Hauptbildschirm wir uns erneut anmelden und die Anforderungsläufe zum zweiten Mal grafisch darstellen, erhalten wir dieses Mal ein Profil. Kann nicht verstehen warum. Vielen Dank!Android Graph Anfrage Facebook - Holen Sie sich das aktuelle Profil
Hier ist der Code:
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(final LoginResult loginResult) {
final AccessToken accessToken = loginResult.getAccessToken();
GraphRequest request = GraphRequest.newMeRequest(
accessToken,
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
try {
if (null == EpicLoginActivity.this) {
return;
}
if (Profile.getCurrentProfile() != null && object != null && response != null) {
profile = Profile.getCurrentProfile();
email = object.optString(getString(R.string.email));
gender = object.optString(getString(R.string.gender));
fbid = profile.getId();
fUserName = profile.getName();
imageUri = profile.getProfilePictureUri(300, 300);
String loginType = getString(R.string.facebook);
User user = new User();
user.name = fUserName;
user.facebookId = fbid;
user.phone = object.optString(getString(R.string.phone));
user.email = email;
user.loginType = loginType;
user.gender = gender;
postDetailsFromFb(user);
}
} catch (Exception e) {
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,email,picture");
request.setParameters(parameters);
request.executeAsync();
}
wollen wir also jedes Mal
ProfileTokenTracker
undAccessTokenTracker
in IhremonSuccess()
Methode setzen verwenden Profildaten erhalten muss Profil-Tracker verwenden, oder? – DebdeepJa, das ist die beste Vorgehensweise .. – rafsanahmad007
Da das Profil abrufen asynchron ist. Vielen Dank! – Debdeep