我正在整合facebook登录我的Android应用程序 我已成功从应用程序登录到Facebook,成功后我正在开展一项活动。
private FacebookCallback<LoginResult> callback = new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
AccessToken accessToken = loginResult.getAccessToken();
Profile profile = Profile.getCurrentProfile();
// String fbname = profile.getName();
//AppLog.Log("name",);
Intent intent = new Intent(getApplicationContext(), ComputerCategoryActivity.class);
startActivity(intent);
}
现在我要发送facebook个人资料的用户名。为此,如果我从上面的代码中删除评论并试图通过这一行获得它:
String fbname = profile.getName();
我正在登录fb但app没有打开活动所以它进入了onSuccess()
方法。请帮助我为什么不能使用Profile.getCurrentProfile();
答案 0 :(得分:1)
你也应该通过这种方式得到它:
@Override
public void onSuccess(LoginResult loginResult) {
final AccessToken accessToken = loginResult.getAccessToken();
GraphRequestAsyncTask request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject user, GraphResponse graphResponse) {
// user.optString("name"));
// user.optString("id"));
// user.optString("email"));
}
}).executeAsync();
}
要在位图中获取个人资料照片:
public static Bitmap getFacebookProfilePicture(String userID){
URL imageURL = new URL("https://graph.facebook.com/" + userID + "/picture?type=large");
Bitmap bitmap = BitmapFactory.decodeStream(imageUrl.openConnection().getInputStream());
return bitmap;
}
答案 1 :(得分:0)
请尝试使用onSuccess方法 -
final GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
Log.d("Response", response.getJSONObject().toString());
if (response.getError() != null) {
// handle error
System.out.println("Error from FB ");
} else {
try {
// JSONObject _jObject = new JSONObject(response.toString());
if (response.getJSONObject().toString() != null) {
if (response.getJSONObject().has("name")) {
String _facebookName = response.getJSONObject().getString("name");
}
}
} catch (Exception e) {
System.out.println("JSON Error");
e.printStackTrace();
}
}
}
});