나는이 Facebook SDK를 며칠 동안 배우려고 노력해 왔으며 막혀있는 것 같습니다. 저는 사용자가 처음 로그인 할 때 Facebook이 이메일과 비밀번호를 입력하고 로그인 할 수있게하는 학교 프로젝트의 기본 응용 프로그램을 작성합니다. 사용자가 "로그 아웃"을 클릭하면 로그 아웃합니다. 내 지식에. 이제 클릭 사인 온으로 돌아 가면 자동으로 그 마지막 계정에 로그인합니다. 계정 전환 옵션을 제공하지 않습니다. 이 문제를 어떻게 해결할 수 있습니까?Facebook SDK를 사용하는 동안 로그 아웃 할 수 없습니다. - Android
EDIT *** 로그인 한 후 로그 아웃했다가 다시 로그인하면 "이전에"APP NAME "에 Facebook에 로그인했습니다. 계속 하시겠습니까?"
취소 및 계속 옵션 만 사용할 수 있습니다. 나는 다른 사람과 로그인하려고 시도조차 할 수 없다! 누군가가 그것을 해결할 수 있다면 이것은 굉장 할 나의 문제입니다! 그 동안 난 당신이 페이스 북 SDK에서 AccessToken 클래스를 이용하여 로그인 할 수있는 여러 가지
package example.com.demo_app;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import com.facebook.AccessToken;
import com.facebook.AccessTokenTracker;
import com.facebook.CallbackManager;
import com.facebook.FacebookActivity;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.GraphRequest;
import com.facebook.GraphResponse;
import com.facebook.appevents.AppEventsLogger;
import com.facebook.login.LoginBehavior;
import com.facebook.login.LoginManager;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;
import com.facebook.login.widget.ProfilePictureView;
import org.json.JSONException;
import org.json.JSONObject;
import org.w3c.dom.Text;
public class MainActivity extends AppCompatActivity {
LoginButton fbButton;
CallbackManager callBackManager;
TextView nameBox;
TextView emailBox;
TextView idBox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fbButton = (LoginButton)findViewById(R.id.login_button);
fbButton.setReadPermissions("email", "public_profile");
callBackManager = CallbackManager.Factory.create();
fbButton.registerCallback(callBackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
String user_id = loginResult.getAccessToken().getUserId();
GraphRequest graphRequest = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
if (object != null)
{
displayInfo(object);
}
else {
LoginManager.getInstance().logOut();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "first_name, last_name, email, id");
graphRequest.setParameters(parameters);
graphRequest.executeAsync();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
}
});
}
public void displayInfo(JSONObject object)
{
String first_name = "";
String last_name = "";
String email = "";
String id = "";
try {
first_name = object.getString("first_name");
last_name = object.getString("last_name");
email = object.getString("email");
id = object.getString("id");
} catch (JSONException e) {
e.printStackTrace();
}
nameBox = (TextView)findViewById(R.id.txtFullName);
emailBox = (TextView)findViewById(R.id.txtEmail);
idBox = (TextView)findViewById(R.id.txtID);
nameBox.setText(first_name+ " " +last_name);
emailBox.setText(email);
idBox.setText(id);
ProfilePictureView profilePictureView;
profilePictureView = (ProfilePictureView) findViewById(R.id.friendProfilePicture);
profilePictureView.setProfileId(id);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callBackManager.onActivityResult(requestCode, resultCode, data);
}
}
유일한 문제는 기술적으로 "로그 아웃"버튼이 생성되지 않았다는 것입니다. Facebook SDK는 사용자가 로그인하면 로그 아웃 버튼을 자동으로 생성하므로 이미 로그 아웃 한 버튼을 호출하는 방법을 100 % 확신 할 수는 없습니다 – nquaisc
Listen up. 사용자가 로그인하면 다른 활동으로 안내 할 수 있습니다. 거기에 선택한 버튼을 추가하고 거기에 onClickListener를 추가하십시오. 위에서 언급 한 방법을 호출하면 위 코드에서와 같이 사용자를 로그인 화면으로 리디렉션합니다. FB의 로그 아웃 버튼이 로그인으로 다시 변경되었음을 알 수 있습니다. 이 문제는 LoginManager를 호출하여 설정하기 때문에 발생합니다. –
괜찮 으면 대답을 승인으로 표시하십시오. 감사 –