diff --git a/app/models/services/facebook.rb b/app/models/services/facebook.rb index 42828d863..fd56840b1 100644 --- a/app/models/services/facebook.rb +++ b/app/models/services/facebook.rb @@ -1,4 +1,6 @@ class Services::Facebook < Service + include Rails.application.routes.url_helpers + MAX_CHARACTERS = 420 def provider @@ -7,11 +9,15 @@ class Services::Facebook < Service def post(post, url='') Rails.logger.debug("event=post_to_service type=facebook sender_id=#{self.user_id}") - Faraday.post("https://graph.facebook.com/me/joindiaspora:make", {:access_token => self.access_token}.to_param) + Faraday.post("https://graph.facebook.com/me/joindiaspora:make", create_post_params(post).to_param) + end + + def create_post_params(post) + {:post => "#{AppConfig[:pod_url]}#{short_post_path(post)}", :access_token => self.access_token} end def public_message(post, url) - super(post, MAX_CHARACTERS, url) + super(post, MAX_CHARACTERS, url) end def finder(opts = {}) diff --git a/spec/models/services/facebook_spec.rb b/spec/models/services/facebook_spec.rb index 50755a6cd..cfdd2e759 100644 --- a/spec/models/services/facebook_spec.rb +++ b/spec/models/services/facebook_spec.rb @@ -11,25 +11,24 @@ describe Services::Facebook do describe '#post' do it 'posts a status message to facebook' do - - stub_request(:post, "https://graph.facebook.com/me/feed"). - to_return(:status => 200) + stub_request(:post, "https://graph.facebook.com/me/joindiaspora:make"). + to_return(:status => 200, :body => "", :headers => {}) @service.post(@post) end it 'swallows exception raised by facebook always being down' do pending "temporarily disabled to figure out while some requests are failing" - stub_request(:post,"https://graph.facebook.com/me/feed"). + stub_request(:post,"https://graph.facebook.com/me/joindiaspora:make"). to_raise(StandardError) @service.post(@post) end it 'should call public message' do - stub_request(:post, "https://graph.facebook.com/me/feed"). + stub_request(:post, "https://graph.facebook.com/me/joindiaspora:make"). to_return(:status => 200) url = "foo" - @service.should_receive(:public_message).with(@post, url) + @service.should_not_receive(:public_message) @service.post(@post, url) end end