【发布时间】:2016-07-28 11:42:15
【问题描述】:
我在 android 上使用“使用 facebook 登录”创建了一个简单的测试应用程序。
这是我的代码:
public class MainActivity extends AppCompatActivity {
private TextView info;
private LoginButton loginButton;
private CallbackManager callbackManager;
String email;
String birthday;
String name;
String gender;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.activity_main);
callbackManager = CallbackManager.Factory.create();
info = (TextView)findViewById(R.id.fb_text);
loginButton = (LoginButton)findViewById(R.id.fb_login);
loginButton.setReadPermissions(Arrays.asList("public_profile", "email", "user_birthday"));
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
info.setText(
"User ID: "
+ loginResult.getAccessToken().getUserId()
+ "\n" +
"Auth Token: "
+ loginResult.getAccessToken().getToken()
);
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
Log.v("LoginActivity", response.toString());
// Application code
try {
email = object.getString("email");
birthday = object.getString("birthday"); // 01/31/1980 format
name = object.getString("name");
gender = object.getString("gender");
} catch (JSONException e) {
e.printStackTrace();
}
info.append(
"User Name: " + name
+ "\n" +
"birthday: "
+ birthday
+ "\n" +
"Gender: "
+ gender
+ "\n" +
"Email: "
+ email
);
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,email,gender,birthday");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
info.setText("Login Cancelled");
}
@Override
public void onError(FacebookException e) {
info.setText("Login Failed");
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
}
我应该如何获取用户的个人资料图片并将其显示到我的活动中?
【问题讨论】:
-
使用这个:"graph.facebook.com/"+id of fbuser+"/picture?type=large"