2009-09-20 5 views
3

필자는 Facebook과 통합하고자하는 기존의 Rails 웹 응용 프로그램을 가지고 있으므로 사용자가 내 응용 프로그램에서 작업을 수행 할 때 외부 링크가 포함 된 뉴스 항목이 나중에 사용자 활동에 요약 된 데몬에 의해 사용자 벽/피드에 게시됩니다 . 현재 싱글 사인온 (single signon) 등은 필요 없으며 업데이트를 보낼 수있는 기능 만 있습니다.FB 애플리케이션에서 사용자가 활성화되지 않은 상태에서 웹 애플리케이션이 Facebook 뉴스 피드 항목 및 알림을 게시하는 방법은 무엇입니까?

또한 앱을 사용하고 있다면 사용자의 친구에게 알림을 보내고 싶지만 뉴스 피드 기능 만 있으면 행복 할 것입니다.

나는 facebooker 플러그인을 사용하고, 초기에 책이 말한다 마이클 Mangino에 의해 실용적인 프로그래머의 책 페이스 북 플랫폼 개발을하고 있어요 :

페이스 북이 우리의 응용 프로그램이 있는지 확인하기 위해 세션을 사용하여 활성 사용자를 대신하여 작업 수행 . 사용자를 대신하여 님께 통보를 보내시겠습니까? 우리는 해당 사용자의 세션 정보로 을 Facebook에 제공합니다. 페이스 북은 세션이 실제로 요청하는 사용자에게 속하는지 확인하고 지난 시간 내에 애플리케이션에서 사용자가 활성 상태인지 확인합니다. 페이스 북이 그들에게 사용 적극적으로 아닌 사용자의 를 대신하여 조치를 취하는 응용 프로그램을 방지하기 위해 세션을 사용하고 무엇을 '응용 프로그램의 활동적인'로 계산 무엇

는이 맥락에서 의미 하는가 ? 나는 사용자 프로필에 RSS 피드를 자동으로 게시하는 것과 같은 일을하는 다른 앱을 보았으므로 유일한 상호 작용이 일회용 설치 및 구성 인 유사한 앱을 가질 수 있습니다.

이 응용 프로그램은 어떻게 작동하며 facebooker에서이 기능을 사용할 수 있습니까?

+0

Facebook 비콘에 대한 정보를 찾고 계십니까? http://en.wikipedia.org/wiki/Facebook_Beacon – opello

+0

아니요, 웹 앱 사용자가 웹 앱과 관련된 작업의 자동 게시를 구성 할 수있는 컴패니언 페이스 북 앱을 설치할 수 있다는 아이디어는 없습니다. 개념적으로 페이스 북에 복제 된 짹짹이나 블로그 포스트를 가지고있는 것과 같기 때문에 - 일반적인 RSS 앱을 사용할 수는 있지만 사용자가 구성하지 않아도되도록합니다. – frankodwyer

+0

(물론 FB 앱을 설치하지 않고도 동일한 작업을 수행 할 수 있다면 FB 앱을 내 웹 앱의 계정에 연결하는 것만으로도 더 좋을 것입니다.) 나는 FB가 서로에게 흐려지는 여러 API를 가지고있는 것처럼 보이는 가장 간단한 API/접근 방식이 무엇인지 잘 모르겠습니다. – frankodwyer

답변

1

사용자에게 "publish_stream"확장 권한을 요청해야합니다. 이 작업이 완료되면 앱을 추가하고 이러한 확장 된 권한을 허용 한 사용자의 스트림에 게시 할 수 있습니다. http://wiki.developers.facebook.com/index.php/Extended_permissions

그런 다음 Facebooker::User.publish_to을 사용하십시오. 또한 알림을 보내려면 Facebooker::Session.send_notification을 참조하십시오 (이 경우 확장 권한이 필요하지 않습니다).

일반적으로 facebooker 및 Facebook API에 대해 본 문서의 99 %가 활성 세션과 그 중 많은 부분을 다루고있는 것으로 보입니다. 캔버스. 백엔드에서이 모든 작업을 실제로 많이 본적이 없습니다.

기본적으로 facebooker를 사용하면 캔버스 안에 있지 않으므로 Facebooker :: Session 및 Facebooker :: User를 직접 만들어야합니다.

fbsession = Facebooker::Session.create(api_key, secret_key) 
fbuser = Facebooker::User.new(<Facebooker user id>, fbsession) 

#requires "publish_stream" extended permission 
fbuser.publish_to(fbuser, :message => "This is a post") 

fbsession.send_notification(fbuser.id, "<fb:fbml>some sweet fbml</fb:fbml>") 

희망이 있으면 도움이 될 것입니다.

+0

정말 도움이됩니다. 그러나 '사용자에게 확장 권한 요청'이라고 말하면 무엇이 프롬프트가됩니까? 사용자가 추가하는 앱은 무엇입니까? 이후에 앱에 로그인하지 않거나 FB에 로그인하지 않은 경우 중요합니까? – frankodwyer

+0

흠 그리고 'publish_stream'권한은 매우 광범위하게 보입니다. 상태를 바꿀 수 있습니다 - 많은 사기꾼이 뉴스 피드에 메시지를 붙이도록 요청해야하는 것처럼 보입니다. – frankodwyer

+1

Facebook은 귀하의 앱 사용자들과 함께 무엇이든하는 것은 고통 스럽습니다. 이는 단순히 앱이 사용자에게 부여하는 추가 권한을 요구하는 것입니다. 이 권한은 Facebook 사용자에게 저장되며 앱 사용자의 Facebook 사용자 ID를 저장하기 만하면됩니다. 이것은 또한 한 번만 완료하면됩니다. facebook connect javascript API를 사용하여 확장 된 권한을 묻는 메시지를 표시하지만 url로도 할 수 있습니다. Facebooker :: Session.permission_url ('publish_stream')은 사용자가 클릭하여 수락해야 할 URL을 반환합니다. http://facebooker.rubyforge.org/classes/Facebooker/Session.html#M000273 – AdamB

0

나는 비슷한 상황에 있습니다 ... 여기에 현재의 결과가 있습니다. 희망 그들은 도움이됩니다.

facebook_session = Facebooker::Session.create 
facebook_session.permission_url('publish_stream') 

다음 사용자 프로필에 메시지를 게시하려면이

facebook_session = Facebooker::Session.create 
facebook_session.post 'facebook.stream.publish', :uid => [UID], :message => 'test' 

내가 확신 사용자가 publish_stream 액세스를 부여 클릭해야 URL을 얻으려면 위의 방법에는 한계가 있지만, 늦었습니다. 피곤해서 아침에 다시 가져올 것입니다. :-)

2
user = session[:facebook_session].user 
user.publish_to(user, :message => "action!", 
          :attachment => {:name => "name of attachment", 
              :href => "http://link.where.attachment.description.should.link.to", 
              :media => [{:type => "image", 
                 :src => "http://link.to.where.attachment.is", 
                 :href => "http://link.where.attachment.description.should.link.to"}]}, 
          :action_links => [{:text => 'Action Link Title', 
               :href => 'http://www.action.link'}]) 
관련 문제