在我的应用程序中,我使用 facebook 登录,如果用户点击按钮,它会显示 facebook 登录屏幕,如果用户输入凭据,我想获取用户 ID,我在这里粘贴login()
代码,你能告诉我有什么变化吗?必须做些什么来获取用户ID?
private void loginToFacebook() {
mPrefs = getPreferences(MODE_PRIVATE);
String access_token = mPrefs.getString("access_token", null);
long expires = mPrefs.getLong("access_expires", 0);
if (access_token != null) {
facebook.setAccessToken(access_token);
}
if (expires != 0) {
facebook.setAccessExpires(expires);
}
if (!facebook.isSessionValid()) {
facebook.authorize(this,
new String[] { "email", "publish_stream" },
new DialogListener() {
@Override
public void onCancel() {
// Function to handle cancel event
}
@Override
public void onComplete(Bundle values) {
// Function to handle complete event
// Edit Preferences and update facebook acess_token
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("access_token",
facebook.getAccessToken());
editor.putLong("access_expires",
facebook.getAccessExpires());
try {
editor.putString("access_expires",
facebook.request("me"));
try {
JSONObject json = Util.parseJson(facebook
.request("me", values));
String userId = json.getString("id");
} catch (FacebookError e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
Log.i(TAG, facebook.request("me"));
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
editor.commit();
}
@Override
public void onError(DialogError error) {
// Function to handle error
Log.wtf(TAG, error);
}
@Override
public void onFacebookError(FacebookError fberror) {
// Function to handle Facebook errors
Log.wtf(TAG, fberror);
}
});
}
}