Am I posting to Facebook correctly? - ruby-on-rails

Anyone use the Koala gem to post on a Facebook wall before? I am able to post fine (with the picture displayed), but can't seem to have the "share" link on the actual wall post. "Like" and "Comment" appear though.
I have the following:
client = Koala::Facebook::API.new(user.token)
options = {
:message => "Message here",
:description => "Description here",
:link => "http://#{APP_CONFIG['host']}/foobars/1",
:picture => "#{photo.url}"
}
client.put_object(user.facebook_uid, 'feed', options)
Am I missing something in options? Would anyone like to share their experience?

Seems to work by changing feed to links:
client.put_object(user.facebook_uid, 'links', options)

Related

How do I post an image using Koala gem?

I'm using the Koala gem to post images to the Facebook wall with the put_object method. The problem I'm having is that the images show up as thumbnails on the wall (with a caption) instead of the larger image that I'm expecting. When you click on the thumbnail, I'm expecting the photo to pop open in Facebook's photo viewer, but it simply directs me to the URL of the image I specified. This seems more like the behavior I'd expect when posting a link to the wall. I've also tried using post_picture with no success. Here is a screenshot of what I'm expecting: http://cl.ly/image/472a2H333z13
My stream permissions include the following:
read_stream,offline_access,manage_pages,publish_stream,create_event,rsvp_event,sms,user_photos,friends_about_me,friends_status,friends_activities,friends_likes,friends_interests,read_insights,friends_photos
The following code works but not as expected - here is a screenshot of how an image posted in using put_object appears on the timeline: http://cl.ly/image/1x3X1K0k2l2D
put_object('me', 'feed', :message => 'this is the message', :name => 'this is the caption', :picture => 'http://www.socialvolt.com/img/producttour/listen.png', :source => 'http://www.socialvolt.com/img/producttour/ssPublish.jpg')
This code doesn't work at all:
put_picture('me', 'feed', :message => 'this is the message', :name => 'this is the caption', :picture => 'http://www.socialvolt.com/img/producttour/listen.png', :source => 'http://www.socialvolt.com/img/producttour/ssPublish.jpg')
I also can't find any difference between :picture and :source.
Can anyone help me figure out what I'm doing wrong?
Here is the code.
graph = Koala::Facebook::API.new(cookies[:acess_token])
begin
graph.put_picture(
"https://dl.dropboxusercontent.com/u/71317935/banners/coy_copper.jpg",
"image/png",
{:message => "introduces Some information"}
)
rescue Exception => e
render :text => e.message and return
end
Off the top of my head, you may need a larger photo. More specifically, I think the width needs to be at least 480px.
The images in your code seem to be less than 480px:
http://www.socialvolt.com/img/producttour/listen.png
http://www.socialvolt.com/img/producttour/ssPublish.jpg
This comes from experience with User Generated Photos. You're not really using Open Graph Actions, so I have no idea if Facebook applies the same rules for this to generic photo uploads.

How to post user generated photos to Facebook using Koala?

I'm using the Koala gem in a Rails 3.2 app.
I'm trying to post an action that includes a user generated photo to a Facebook application. According to FB's docs, the url I need to post to is:
https://graph.facebook.com/uid/namespace:action?object=http://path/to/page&image[0][url]=http://path/to/image.jpg&image[0][user_generated]=true
If I test this manually using Facebook's debugger, it works perfectly. But I'm having trouble achieving this with Koala.
I'm using the following method:
Koala::Facebook::API.new(app_token).put_connections( uid, namepsace:action, url )
If I use:
url = "http://path/to/page"
then the action is posted to Facebook correctly, but without the user generated photo.
If I use:
url = "http://path/to/page&image[0][url]=http://path/to/image.jpgimage[0][user_generated]=true"
I receive an error in the logs
#<Koala::Facebook::APIError: OAuthException: (#3502) Object at URL http://path/to/page&image[0][url]=http://path/to/image.jpg&image[0][user_generated]=true has og:type of 'website'. The property 'object' requires an object of og:type 'namespace:object'. (http response code: 404)>
What is the correct way to construct the required post url using Koala? Or what is a good approach to begin debugging my current code? Or am I totally on the wrong track with this?
I struggled a ton with this too, both because of Facebook's documentation and Koala's which are not super clear in my opinion:
Koala::Facebook::API.new(access_token).put_connections(
uid,
"namespace:action",
"product" => "[URL_TO_PRODUCT]",
"image[0][user_generated]" => true,
"image[0][url]" => "[URL_TO_USER_GENERATED_IMAGE]",
"fb:explicitly_shared" => true,
"message" => "[DESCRIPTION]"
)
The other thing was that the target URL had to have og:type="namespace:product"
Hope this helps
Have you checked your url in Facebook Debugger?
http://developers.facebook.com/tools/debug
From error message you got it looks like you should set og:type to namespace:object and to get custom image you should set og:image to http://your.domain.com/path/to/user/generated/image
I was using put_connections, like you, but it's not necessary, you can use the method put_wall_post.
I asked for the permission: publish_actions.
And in my Controller's method I have:
api = Koala::Facebook::API.new(#oauth_token)
api.put_wall_post("Testing post on Timeline", {
:name => "Im a wall post",
:link => "http://www.example.com",
:caption => "Im a caption",
:description => "Im a long description of an attachment",
:picture => "http://www.example.com/picture.jpg"
}, #users_facebook_id)
With this, you can post to the user's Timeline, having an image, a description, etc.

the picture can't be attached when I publish a new feed on facebook by graph

I was publishing a new feed to the wall on facebook using graph api in ruby, and it works except the picuture is blank.
here is a arguments I attached
{
:message => "Hello, world",
:name=> "name here",
:link=> "http://blabla.com",
:caption=> "Note: stars",
:description => " a long sentence",
:picture => "http://www.fbrell.com/f8.jpg",
:source => "another url"
}
but if I do the same things with graph api using javascript sdk, the picture can be posted to the wall.
here is the same questions the other guys asked. any help? thank you very much.
Problem with post a picture in Facebook Wall with Graph API
Picture posting NOT working with facebook Graph API anymore

mini fb posting to friend's wall using graph api

Hi I have read all the other post relating to this but I think I am missing something fundamental. I am using mini_fb in my ruby on rails application for handling the facebook api. I have the following code:
current_user.session.post('me', :type => :feed, :params => {:name => "name",
:to => "{\"data\":[{\"name\":\"#{friend.facebook_name}\",\"id\":\"#{friend.facebook_id}\"}]}",
:link => url_of_app,
:description => "desc",
:actions => "{\"name\": \"action name\", \"link\": \"url\"}"})
The above posts to the current user's wall with or without the "to" parameter set. Everything works, except for the "to" parameter. I have read the graph post to wall over and over again and I can't figure out what is wrong with this code of mine. I would really appreciate it if someone could point out my mistake.
I've never used ruby's version, but probably the problem is in the first parameter. You are targeting 'me' feed, while should be targeting your friends feed. Try fetching your friend id and doing something like
current_user.session.post(friend.facebook_id, :type => :feed, :params => ...)
Wow, mini_fb looks so verbose :)
Telémako is right, you need to use your friends id. I give you another alternative for more nice code. Use Koala.
https://github.com/arsduo/koala/wiki/Graph-API
#graph.put_wall_post("explodingdog!", {:name => "i love loving you", :link => "http://www.explodingdog.com/title/ilovelovingyou.html"}, "tmiley")
=> {"id"=>"83901496_520908898070"}
I use it in my projects and works very well.

403 Error when Authenticating using tumblr gem for rails application

I have a ruby-on-rails application that wishes to utilise the tumblr gem for adding posts when an action is taken (eg: creating a blog post)
I currently have the tumblr gem installed and can manage to fetch my posts using
#tumblruser = Tumblr::User.new('myemail','mypassword')
However when i go to add a post where it asks me to pass the user information like so (according to the API for the gem)
post = Tumblr::Post.create(#tumblruser, :type => 'video', :embed => #post.video_html, :title => #post.title, :caption => #post.content)
it just does not want to authenticate and returns a 403 error
anyone had any experience with this?
NEW SOLUTION:
I have found recently that there has been a problem with the gem. So I have made a copy of it, changed a few things in the docs and code and put it at http://rubygems.org/gems/matenia-tumblr-api
Hope the changes and docs help someone else out there.
As always I welcome any improvements, or refactoring on any of my projects.
Kind Regards,
Matenia
OLD ANSWER BELOW
I managed to get around this by the way ... all i did was declare the username and password in place of #tumblruser like so:
post = Tumblr::Post.create(:email => 'user name email here',
:password => 'my password',
:type => 'video',
:embed => #post.video_html,
:caption => #postcontent)
where #postcontent is the html text of post.content and gsubbed to escape most of the html.
hope this saves someone else some time.
If you are only going to check authentication with any media like Facebook , Twitter ,LinkedIn ,Tumblr , Github and almost 20 others (you can check Here ) .Then omniauth gem is the first thing that comes to mind . Means It's clearly simplest solution for authentication and I love it

Resources