이제
CallbackManager.Factory.create
를 呼出하여 로그인 應答을 處理할 callbackManager를 만듭니다.
callbackManager = CallbackManager.Factory.create();
버튼을 프래그먼트에 追加하는 境遇 프래그먼트를 使用하도록 活動도 업데이트해야 합니다.
Login button
義 屬性을 맞춤 設定하고
onCreate()
또는
onCreateView()
메서드에 콜백을 登錄할 수 있습니다. 맞춤 設定할 수 있는 屬性에는
LoginButton
에 對한 權限,
LoginBehavior
,
DefaultAudience
및
ToolTipPopup.Style
이 包含되어 있습니다. 例를 들면 다음과 같습니다.
private static final String EMAIL = "email";
loginButton = (LoginButton) findViewById(R.id.login_button);
loginButton.setReadPermissions(Arrays.asList(EMAIL));
// If you are using in a fragment, call loginButton.setFragment(this);
// Callback registration
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
}
@Override
public void onCancel() {
// App code
}
@Override
public void onError(FacebookException exception) {
// App code
}
});
로그인 結果에 應答하려면
LoginManager
또는
LoginButton
으로 콜백을 登錄해야 합니다.
LoginButton
으로 콜백을 登錄하는 境遇 로그인 管理者에서 콜백을 登錄하지 않아도 됩니다.
다음과 같이 活動 또는 프래그먼트의
onCreate()
메서드에 LoginManager 콜백을 追加합니다.
callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
}
@Override
public void onCancel() {
// App code
}
@Override
public void onError(FacebookException exception) {
// App code
}
});
로그인에 成功하면
LoginResult
媒介變數에 새로운
AccessToken
과 最近에 附與되거나 拒否된 權限이 包含됩니다.
로그인에 成功하는 데
registerCallback
을 使用할 必要가 없습니다. 아래 說明된
AccessTokenTracker
클래스와 함께 現在 액세스 토큰의 變更 內容을 따르도록 選擇할 수 있습니다.
마지막으로
onActivityResult
메서드에서
callbackManager.onActivityResult
를 呼出하여 로그인 結果를
callbackManager
를 통해
LoginManager
에 傳達합니다.
AndroidX 活動 또는 프래그먼트를 使用하고 있는 境遇 'onActivityResult'를 再定義할 必要가 없습니다.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
callbackManager.onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}
Facebook SDK 로그인 또는 공유와 統合한 모든 活動과 프래그먼트에서
onActivityResult
를
callbackManager
에 傳達해야 합니다.