Facebook: Wall Posts and Facebook Platform Policies: be careful

When using the methods for wall posts in the current Facebook sample app (in 2011.591), the options appear to be either:

1. Just post a message directly to their wall, without letting the user edit the wall post or even see what's being posted (this is what's going on in all of the tutorials and code snippets I found in the forums)

2. Give the user a blank dialog box to post whatever they want to their wall via your application.

If I understand the Facebook Platform Policies correctly (http://developers.facebook.com/policy/), you can't post something to someone's wall that they didn't generate themselves. You can see in the feed dialog options page (http://developers.facebook.com/docs/reference/dialogs/feed/) that the option to even pre-fill the message was taken away on July 12, 2011.

So, I believe that the option provided in the Facebook sample app that posts the message "Posting from Corona SDK!" violates the Facebook Platform Policies. Also, if an app was posting a message to my facebook wall that I wasn't even getting to see before it was posted, I wouldn't be very happy about it.

The way I see it, the only way to let someone share your app on Facebook is to provide them with a blank dialog box from within your app and hope they say something nice.

Here is the code to do this:

1
2
3
4
5
6
7
8
9
10
11
local callFacebook = function()      
        local facebookListener = function( event )
                if ( "session" == event.type ) then
                        if ( "login" == event.phase ) then             
                                facebook.showDialog( {action="stream.publish"} )
                        end
                end
        end
        
        facebook.login( "YOUR APP ID HERE", facebookListener, { "publish_stream" } )    
end

Nice post, thanks for sharing

I have some facebook friends who play games and use some other apps available there. I see these generic messages from the apps posted to their walls all the time.

I don't see how any of these apps fit the policy you have described. Is there a separate set of rules for facebook apps vs. external apps posting to facebook?

I'm not sure that's true, that you can't post directly to someone's wall. You posted a link to a page that apparently supports that stance, but right at the top of that page it says this:


If you would like your application to publish directly to a profile's feed without user interaction, use the corresponding Graph API call.

That makes it sound like a direct post from an application is fine (assuming you use the Graph API calls).

Jay

In order to get your app to post to Facebook, you have to register a Facebook application to get an App Id, and whether your app integrates with Facebook using a canvas page, or through a website, or through a mobile app, I believe that it's all the same to Facebook, you're still using their platform and their API. I could be wrong about that.

I think the part that applies to directly posting to someone's wall is under Application Integration points:

---
2. You must not pre-fill any of the fields associated with the following products, unless the user manually generated the content earlier in the workflow: Stream stories (user_message parameter for Facebook.streamPublish and FB.Connect.streamPublish, and message parameter for stream.publish), Photos (caption), Videos (description), Notes (title and content), Links (comment), and Jabber/XMPP.
3. If a user grants you a publishing permission, you must still obtain consent from the user before taking any action on the user's behalf, such as publishing content or creating an event.
---

In the Facebook Sample app, and the snippet I've seen on the forums, the sequence goes like this:
1. User logs in
2. User authorizes app
3. Window closes and the story is immediately posted to the wall, without confirmation or even seeing what was posted.

I think this violates both item 2 and 3 above.

You're right about what it says at the top of the Feed Dialog page, but doesn't that directly conflict with item 3 above? It's basically saying, use the Graph API to directly post without user interaction, but don't post without user interaction. (?)


You're right about what it says at the top of the Feed Dialog page, but doesn't that directly conflict with item 3 above? It's basically saying, use the Graph API to directly post without user interaction, but don't post without user interaction. (?)

I don't think there's a discrepancy, depending on how you do things. If someone is signed into FB from my app and at some point they hit a "Post to Facebook" button, that's "consent" from the user to post to their wall.

What wouldn't be consent would be to post "Bob just got a high score on FlappApp!" when Bob got a high score -- but didn't say to share that achievement.

That's the way I read it, anyway. If the user doesn't know something is being published, that's when you could/should run into trouble.

Jay

So is there a way to populate the message field and just show the dialog?

That's make it easy.

Any ideas?

views:1687 update:2011/9/26 8:07:09
corona forums © 2003-2011