Facebook 초대 친구에게 자바 스크립트 코드를 사용할 때 몇 가지 문제가 있습니다. 상세 사항 :로그인하지 않은 페이스 북 사용자와 로그인 한 페이스 북 사용자를 차별화하지만 아직 응용 프로그램을 인증하지 않았습니다
사용자 페이스 북 A는 이미 우리의 웹 응용 프로그램을 허가하고, 우리가 할 수있는 권한 부여 오프라인 액세스를 자신의 액세스 토큰을.
사용자 A 웹에 로그인했습니다. 시스템은 A가 Facebook에서 자신의 계정 (웹상)을 동기화했음을 감지하여 Facebook에서 A의 정보를 검색합니다.
동일한 브라우저에서, 새 탭을 열고 Facebook에서 로그 아웃합니다. "그는 우리의 웹 (A가 이미 열려있는 탭)으로 이동, 클릭 페이스 북 B.
사용자 :
는 사용자 B는 컴퓨터을 차용하고 페이스 북에 있지만 자신의 계정으로 로그인 친구를 초대". 목록에는 사용자 A가 아닌 모든 사용자 B가 표시됩니다.. 수도는 우리의 웹 응용 프로그램 (사용자가 자신이 잘못 페이스 북 계정을 동기화 할 생각)에 대한 해제 예상 동작이 발생하기 때문에
이 시나리오는 (매우 드물게 발생하지만), 우리 그룹 테스터를 고민.
해당 사례를 중단하려면 사용자가 Google 애플리케이션 (사용자 A)을 승인 한 상태에서 현재 Facebook에 로그인 한 사용자 (사용자 B)와 차별화하고 싶습니다.
function showInvitationDialog() {
FB.init({
appId:'${appId}',
cookie: false,
status: true,
xfbml: true
});
FB.getLoginStatus(function (response) {
if (response.session) {
if (response.session.uid != ${fbId}) {
alert("You are currently logged in to FB with another account (different to the account you registered). Please make sure that you don't accidently use others FB account to invite");
return;
}
}
var request_ids = FB.ui({ method: 'apprequests',
message: '<@spring.message code="friends.invitation.message" />',
data: 'hello'});
});
}
위의 코드는 대부분의 경우에 작동하지만 문제가있다 : 현재 내가 이런 식으로 확인하고 있습니다
- 사용자 X '는 페이스 북 사용자 X 로그인, 그는 권한을 부여하는 경우 우리의 응용 프로그램이 이미 : response.session.uid = X_FacebookId -> 좋아, 우리는 사용자 X가 페이스 북에 로그인하지 않은 경우 그가
- 누구인지, response.session 사용자 X는 페이스 북 사용자 X로 로그인 한 경우 ==
- 정의되지 않은 ', 그는 아직 우리의 어플리케이션을 auhthorize하지 않았다. response.session == undefined
그래서 내가 두 경우 경우 3 대 경우 2를 구별 할 수없는, getLoginStatus의 결과는 동일하지만 나는 다르게 그것을 해결하려는 : 2
- 경우 -> 계속을 함수를 호출하여 "로그인 대화 상자"팝업
- 사례 3 -이 사용자에게 잘못된 Facebook 계정에 로그인했음을 알립니다.
이 상황에 대한 해결책이 있습니까? 어떤 아이디어든지 크게 평가 될 것입니다.그들은, 알 수없는 수단들이 응용 프로그램을 승인 한 의미가 페이스 북에 로그인하지만 응용 프로그램을 승인하지 않았 음을 의미합니다 not_authorized
{
status: one of 'not_authorized'/'connected'/'unknown'
authResponse: ....
}
, 연결 :
실제로받은 상태는 notConnected/connected/unknown입니다. 어쨌든 가이드 덕분에 :) –
그래서 FB는 여전히 API를 많이 변경하고 있습니다 ... –