2012-09-14 6 views
1

저는 Spring Social을 사용하여 Facebook 친구들과 그 위치의 목록을 얻으려고합니다. 대신 access_token이 매개 변수로 URL에 추가의Facebook 헤더 기반 인증이 작동하지 않습니다.

Authorization: OAuth AAAFDa6Gl4usBAJH4... 

: 내가 무엇을 볼 수에서 봄 사회는 HTTP 요청 헤더에 액세스 토큰을 넣습니다. 결과적으로 요청은 위치 데이터를 포함하지 않는 기본 정보 만 리턴합니다. 헤더에있는 액세스 토큰이 유효하다는 것을 알 수 있습니다. GET 요청에 수동으로 포함하면 위치를 포함한 전체 데이터 세트가 반환되기 때문입니다.

누군가이 문제를 전에 보았습니까? 문제가 무엇인지 알려 줄 수 있습니까?

답변

0

스프링 소셜이 권한 부여 헤더에 액세스 토큰을 넣는 것과 같습니다 (OAuth 2 사양 초안 10). 이제, 이것은 아마도 더 최근의 초안에서 "무기명"토큰 형식을 사용해야 할 것입니다,하지만 저는 지난 며칠 동안 스프링 소셜 페이스 북을 사용하여 정확하게하려고 했었습니다 - 사용자의 친구를 가져 오십시오 그리고 잘 작동하고있어.

Facebook의 설명서가 인증 헤더보다 access_token 쿼리 매개 변수를 더 많이 사용하는 것 같지만 해당 API는 (항상 보유하고있는) 두 가지 중 하나를 지원합니다. 따라서 주어진 토큰에 사용자의 친구를 볼 수있는 권한이 있다고 가정하면 작동합니다.

실제로 나는 이것을 확인했습니다. 첫째, 스프링 소셜 쇼케이스 (https://github.com/SpringSource/spring-social-samples/tree/master/spring-social-showcase)를 사용했습니다. Facebook에 연결 한 다음 왼쪽 메뉴의 "친구"목록을 클릭하십시오. 그것은 효과가 있었다. 또한 유효한 액세스 토큰을 얻었고 브라우저를 https://graph.facebook.com/me/friends으로 지정하고 브라우저의 헤더 수정 플러그인을 사용하여 Authorization 헤더를 "OAuth {my token}"으로 설정했습니다.

스프링 소셜 쇼케이스 (스프링 소셜 Facebook 사용)를 사용해 보셨습니까? 동일한 문제가 발생했는지 아닌지 궁금합니다.

하지만 "OAuth"대신 "무기명"을 사용하도록 헤더를 업데이트해야한다는 것을 상기시켜 주셔서 감사합니다.

+0

크레이그, 귀하는 틀림없이 Facebook이 승인 헤더를 수락합니다. FB에서 앱이 요청하지 않은 권한으로 인해 문제가 발생한 것으로 보입니다. –

관련 문제