2013-10-30 5 views
3

OS X 용 Facebook 로그인 라이브러리를 구축하고 있습니다. SDK가 없기 때문에가 아니라 로그인 프로세스를 캡슐화 할 수있는 코코아를 원하기 때문입니다. 성공적으로 Facebook 로그인 URL에서 액세스 토큰을 요청했습니다. 내가 페이스 북의 문서에 따라 https://www.facebook.com/connect/login_success.html을 전달하는 redirect_uri 필드의Facebook 토큰을 확인하는 중 문제가 발생했습니다.

https://www.facebook.com/dialog/oauth?client_id=%@&redirect_uri=%@&response_type=token 

: 나는 로그인을 수행하기 위해이 문자열 형식을 사용합니다. 그 응답이 무엇이든간에 URL을 구문 분석합니다. 나는 토큰이나 실패를 얻는다. 토큰이 돌아 오면 좋아. 문제는 다음 단계에 있습니다.

토큰을받은 직후에 유효성 검사를 시도합니다. 그래서처럼 "디버그"엔드 포인트를 사용

https://graph.facebook.com/debug_token?input_token=%@&access_token=%@ 

은 내가 input_token로 나의 새로운 토큰을 전달하고 끈적 얻는 곳이다. 나는 나의 클라이언트 토큰을 전달하려했지만, 그것은 다음과 같은 오류가 발생 : 여기 무슨 일이 일어나고 있는지 확실하지 않다

The operation couldn’t be completed. ((#100) You must provide an app access token or a user access token that is an owner or developer of the app error 100.)

:

The operation couldn’t be completed. (Invalid OAuth access token. error 190.)`

app ID | app secret을 전달하는 경우를, 내가 다른 오류 , 또는 무엇을해야 할지를 결정해야합니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?

답변

7

debug API는 사용자가 아닌 을 앱인으로 사용하려는 경우 적합합니다. 사용자가 로그인하면 필요한 정보를 얻고, 정보를 읽고, 퍼블리시 할 수있는 액세스 토큰 만 있으면됩니다. 물론 액세스 토큰을 가지고 있다고 가정하면 수행하려는 작업을 수행 할 수 있습니다. 따라서 귀하의 경우, 지금은 액세스 토큰을 가지고, 가서

https://graph.facebook.com/me?access_token=%@ 

를 사용하여 사용자에 대한 정보를 얻는 시도하고 다시 같은 것을 얻을 것이다 :

{ 
    "id": "542440888", 
    "name": "Max Rabin", 
    "first_name": "Max", 
    "last_name": "Rabin", 
    "link": "https://www.facebook.com/MY_USER_NAME", 
    "username": "MY_USER_NAME", 
    "birthday": "11/22/YEAR", 
    "hometown": { 
     "id": "110970792260960", 
     "name": "Los Angeles, California" 
    }, 
    "location": { 
     "id": "110970792260960", 
     "name": "Los Angeles, California" 
    }, 
    "bio": "There are 10 kinds of people in this world.\r\n01: Those who know trinary\r\n02: Those who don't\r\n10: Those who confuse it with binary", 
    "gender": "male", 
    "email": "MY_EMAIL", 
    "timezone": 2, 
    "locale": "en_US", 
    "languages": [ 
     { 
     "id": "106059522759137", 
     "name": "English" 
     } 
    ], 
    "verified": true, 
    "updated_time": "2013-10-21T10:02:49+0000" 
} 
+3

이 아닌가 약간의 보안 위험? 누군가 다른 앱에서 사용자 액세스 토큰을 가질 수 있으며이를 사용자의 서버에 보내고 다른 사용자로 로그인 할 수 있습니다. 아니면 뭔가 잘못 됐어? – Kamoris

+0

Facebook 클라이언트 토큰의 범위가 앱으로 지정됩니다. 다른 앱에서는 작동하지 않습니다. – Augusto

관련 문제