2014-11-13 3 views
4

StackOverflow 및 Untappd와 같은 사이트는 어떻게 사용자가 사용 권한을 수락하도록합니까?Facebook oAuth : 강제 이메일 사용

저는 JavaScript 객체를 사용하여 스코프 객체를 사용하여 전자 메일 주소를 요청했지만 계속해서 "사용자가 제공 한 정보 편집"을보고 사용자가 전자 메일 주소를 제공하지 못하도록합니다. 나는 심지어 같은 결과와 함께 Manually Building a Login Flow 다음 시도했다.

이미지 :

enter image description here

우리는 사용자에게 페이스 북을 통해 사이트에 등록 할 수있는 옵션을 제공하는 것처럼, 우리는 우리의 데이터베이스 내에서 계정을 만들 수있는 이메일 주소에 의존입니다.

그러나 StackOverflow 및 Untappd와 같은 사이트에는 이러한 옵션이 제공되지 않으므로 이러한 권한을 받아 들일 것입니다.

그래서 비밀이 무엇입니까? 이것을 어떻게 성취합니까? 내가 어딘가 내려다 보는 설정인가? 아니면 "승인"해야합니까?

답변

13

2014 년 4 월 이전에 생성 된 이전 앱을 사용하고 있었지만 그 당시와는 다릅니다. 당신은 사용자가 로그인 후 권한을 허가하는 경우에만 예를 들어, return_scopes 플래그, 확인하실 수 있습니다, 더 이상 강제 할수 없어 :

https://developers.facebook.com/docs/reference/javascript/FB.login/v2.2

+0

아, 그렇군요. 글쎄, 그건 좀 짜증나. 대답 주셔서 감사합니다 :) 나는 upvote 줄 알았지 만, 그것을 위해 담당자가 없습니다. –

+0

당신이 대답을 받아 들일 수 있다면 행복 할거야, 충분 해. :) – luschn

3

여기에 페이스 북 SDK V4를 사용하여 나를 위해 일한 솔루션입니다. X : 사용자가 처음으로 "이메일"권한 및 진행을 취소합니다 How to “rerequest” email permission using Facebook iOS SDK 4.x?

경우, 전자 메일 액세스를 요청 다른 회 연속은 그를 이메일을 취소하고 더 ​​이상 "OK"공격 할 수 없습니다.

"Not Now"와 "OK"만 표시됩니다 (이메일 선택을 취소하면 회색으로 표시됨).

편집 : 여기 Facebook JS SDK를 사용 rerequest하는 방법은 다음과 같습니다

FB.login(function(response) { 
    console.log(response); 
}, { 
    scope: 'user_likes', 
    auth_type: 'rerequest' 
});