我已經創建了一個簡單的測試應用程序與Android「登錄與臉譜」。如何從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);
}
}
我應該怎麼做才能獲得用戶的個人資料圖片,並將其顯示到我的活動?
使用Facebook API: https://developers.facebook.com/docs/graph-api/reference/user/picture/ – Uata
使用這樣的: 「https://graph.facebook.com/」 + fbuser +「/ picture?type = large」 –