我遵循「使用Facebook登錄創建新的Android項目」部分的步驟https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/登錄過程很好。因爲我想爲用戶登錄使用原生的Android按鈕,所以我通過將下面的代碼移動到原生Android按鈕的View.OnClickListener()中來稍微修改代碼。以下是在聽者的代碼:)使用Facebook SDK 3的額外權限登錄Android的
Session.openActiveSession(MainActivity.this, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session,SessionState state, Exception exception) {
if (session.isOpened()) {
// make request to the /me API
Request.executeMeRequestAsync(session,new Request.GraphUserCallback() {
// callback after Graph API
// response with user object
@Override
public void onCompleted(GraphUser user,Response response) {
if (user != null) {
Toast.makeText(getApplicationContext(), "Hello " + user.getName() +" "+user.getId()+"!", Toast.LENGTH_LONG).show();
}
}
});
}
}
});
的onActivityResult(和AndroidManifest.xml中是一樣的教程
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
不過,我想要求得到「read_friendlists」當用戶登錄成功。我在https://developers.facebook.com/docs/tutorials/androidsdk/3.0/scrumptious/authenticate/閱讀教程,但它使用Facebook SDK自定義按鈕。我怎樣才能達到像我上面顯示的代碼原生Android按鈕相同的行爲?
[看看這篇文章](https://developers.facebook.com/docs/教程/ androidsdk/3.0 /美味/顯示-朋友/); –
@Adil謝謝!閱讀完這篇文章後,我認爲教程(或者SDK?)的缺點是它封裝了太多的細節。因此,開發人員將SDK用於自定義程序流和UI並不容易。另一個例子是https://developers.facebook.com/docs/tutorials/androidsdk/3.0/scrumptious/authenticate/。 SDK提供的登錄按鈕很容易使用,但很難定製UI並保持其實現/功能。我認爲觀點和控制應該分開。 – Greenhand
是的,我使用的是遊戲引擎,並沒有使用任何android視圖,只是使用opengl,我不知道如何實現這一點。 – Mustafa