제목에서 짐작 했겠지만 OmniAuth를 사용하여 사용자의 현재 Facebook 상태 (새로운 옵트 인 기능)를 얻으려고합니다. omniauth initializer 안에 필요한 scope 옵션을 provider 메소드에 전달했습니다. 나는 그것이 한 입 가득, 미안하다는 것을 압니다. 이 코드는 도움이 다음의 OAuth 대화하는 동안, 페이스 북은 자신의 상태 메시지에 대한 액세스를 허용하라는 메시지를 표시하기 때문에OmniAuth & Rails로 사용자의 현재 Facebook 상태 가져 오기
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, ENV['FACEBOOK_ID'], ENV['FACEBOOK_SECRET'], { scope: 'user_status' }
end
나는 그 부분의 일을 알고있다. 그래서 문제는 인증 상태가 Auth Hash에 반환 될 것이라고 기대하고 나머지 사용자 정보와 함께 있지만 문제가 아닙니다.
def callback
raise request.env['omniauth.auth'].to_yaml
end
은 예,이 과도하게 단순화,하지만 난 당신이 지금 약 2 시간 동안 주위 봤 한
등 내 before_filters에 대한 상관 없어 파악하고, 내가 찾은 모든 예제는 정말 고안했다 . 범위를 다루는 항목은 권한을 요청하는 방법 만 언급했지만 실제로 데이터를 가져 오는 방법은 언급하지 않았습니다.
여기에 a similar unanswered question이 있었지만 너무 오래 되었기 때문에 그것을 부활시키는 것이 좋지 않다고 생각했습니다.
어떤 도움을 주셔서 감사합니다. 감사!
7 월 3 업데이트 : 당신의 도움에 대한
감사합니다! 나는 당신의 조언을 찍은과 같이 사용자의 현재 상태를 요청하기 위해 인증 해시에서 토큰을 사용했습니다 : 미래의 독자
FbGraph::User.me(@auth[:credentials][:token]).posts.first.message
: 그것은 토큰이 약 2 개월의 시간이 만료 점에 유의하는 것이 중요합니다, 사용자가 암호를 변경할 때마다 은 토큰이 만료 될 때 사용자에게 알리고 자합니다. FB 문서에서 수집 할 수있는 것부터 만료일은 Unix Timestamp 형태로 표현됩니다. 당신은 너무 같은 루비 날짜 시간을 좋아하는 것이 더 유용 뭔가 그 변환 할 수 있습니다 :
expires_at = Time.at(@auth[:credentials][:expires_at]).to_datetime
을 그런 다음 모델에 토큰을 저장하고 과거를 호출 할 수 있습니다?에 앱이 유효하지 않은 토큰을 사용하지 않도록하십시오.
do_something unless expires_at.past?
안녕하세요. 동일한 문제가 있습니다. fbk 권한 참조 http://developers.facebook.com/docs/authentication/permissions/ (user_status 아래)를 통해 가려고. 운이 아직 없다! – Hishalv