Facebook publish_actions rejected due to message being pre filled

So it seems Facebook have once again changed the rules and it means problems for us corona developers.

I am creating an app whereby the user can post to Facebook.  Last week I submitted my app for approval by Facebook for their publish_actions permission.  I did the very same thing last month with a different app and it was approved.

Reply today: Unapproved.  Reason:  Words in the user message field must be composed by the user and can’t be pre-filled by the app, even if the user can edit or delete the words. See platform policy 2.3 here.

A video describing the situation regarding prefilling the message parameter can be foundhere.

This is of major concern to us as we typically use the message parameter to say something like;  “I just scored 12000 on level 1 of my game.”

What Facebook are saying is that it must now be solely filled in by the user.

This raises a big issue.

How do we get the user to now type in the message prior to posting?

Instead of using something like: 

[lua]

local attachment = {

     message = “Corona Icon file”,

     source = {

          baseDir=system.DocumentsDirectory,

          filename=“coronaIcon.png”,

          type=“image”

    }

}

facebook.request( “me/photos”, “POST”, attachment )

[/lua]

We will now have to use a native.newTextField which as we all know has major issues with font sizing across various devices, then pass the textfield text to the message parameter.

And Corona will have to now update all their tutorials and code to reflect this move by Facebook.

this policy has apparently been in place since 2011, but perhaps they’re just starting to enforce it?

countless games still do the “I just scored 999 in GameName, think you can do better? urlshorten #hashtag” sort of thing, and technically they’re all non-compliant.  i guess they all just “snuck in” before the new review process?

for example, here’s a brand-new forum post from someone having success with a non-compliant message:

http://forums.coronalabs.com/topic/44944-share-screenshot-on-facebook/

tho i wonder if they’ve successfully gone through review for the publish_stream permission or if they only THINK that’s gonna work cuz they’re still testing with their dev account?  (rude awakening awaits them if so)

I too am in the process of prepping for re-review (failed first submission due to login problems described elsewhere in forum - some new OTHER facebook weirdness) of two apps that do photo upload of accomplishments, that WERE going to use the old canned-message style, but I think I’ll have to address that too before resubmission (otherwise, assuming I can eventually work around the login bug, they’ll fail me for the prefilled message bit).

I think there are few compliant options left:

showDialog(“feed” - (which is itself deprecated in favor or share) with some generic internet-hosted image, but at least you can prefill links and such

(or a VERY elaborate:  upload image to your OWN server, then feed post with THAT hosted image)

request(“me/photos” - and just upload the image, but with NO caption

or

request(“me/photos” - with a user-supplied caption (via whatever means: native ui or custom)

in either case you’d now want to “bake in” your marketing message into the photo i guess

or perhaps both?  an uncaptioned photo for the accomplishment, along with a separate feed story for the marketing aspect?  users will hate that, report complaints, app eventually banned, no win.

Hoping you’ll post back with any further results of your own, curious, cheers,

Hi Dave, thanks for all your input. Gave me a few things to think about. 

I have decided to have message = “” to try and get my publish_actions review passed with Facebook.  As it’s a screenshot, I think it might be ok.  Once it’s passed review I will change the message parameter back to some pre filled text.  I will keep everyone informed about the outcome.

We have the same error, and we were using: facebook.request(“me/photos”) - with a pre-filled but editable caption. We don’t mind removing the caption as the image has most of the content anyway, but what we did want was a url to download the game.

Is there a way around this? I’m scratching my head trying to think of one.

Also, I’ve noticed something in native.showPopup() that seems to inadvertently violate this rule.  

Take the following code:

local options = { service = "facebook", message = "", listener = socialFBListener, image = { { filename = "myimage.jpg", baseDir = system.DocumentsDirectory }, }, url = "http://mygreatwebsite.com", } native.showPopup( "social", options )

The message field is blank, so we should be ok to call this function. We have a url parameter, which is one of the functions listed in the docs so that should be ok to use.

However when you call native.showPopup() the url parameter is simply added to the text input field automatically when the popup appears, and can be edited by the user. Given that this is a native function call, and Facebook and iOS seem to have worked together to make this happen, it seems odd that it works in a way that violates one of Facebook’s rules.

Does anyone know any more about the matter? Is it in fact treated as a url still, or does it just get added to the message text field as it appears to?

Hi Corona1234, if you use the social plugin you are ok to use a pre filled message for iOS as it doesn’t require publish_actions permissions I believe.  So you can put anything in both the message and url fields that you want.

I have resubmitted my app to Facebook using the Facebook plugin with the message parameter set to message = “”.

My plan is to put the message back in once approved by Facebook prior to submitting to the app store and google play.  I will keep you all informed of my progress.

And failed the review process again.  This time for something regarding not being able to find the permission during login.  I have put it in for re-review so can’t now see the reason it failed. Arghh!!!

The only thing I can think of that would cause this is:

When creating a new test user and playing around with your app, make sure to remove your app from the app settings page on your test users profile.  It might be that the Facebook reviewer didn’t get any login permissions for the test user as I had already granted them when I was using that test user.

What a nightmare!!!  I have tested my app on countless occasions and all is well, yet Facebook keep rejecting.

Also note if you are rejected for the same issue twice in a row you get a warning that you will be suspended from the reviewing process for a period of time if it happens again.

Interesting. Look forward to hear how it ends.

this policy has apparently been in place since 2011, but perhaps they’re just starting to enforce it?

countless games still do the “I just scored 999 in GameName, think you can do better? urlshorten #hashtag” sort of thing, and technically they’re all non-compliant.  i guess they all just “snuck in” before the new review process?

for example, here’s a brand-new forum post from someone having success with a non-compliant message:

http://forums.coronalabs.com/topic/44944-share-screenshot-on-facebook/

tho i wonder if they’ve successfully gone through review for the publish_stream permission or if they only THINK that’s gonna work cuz they’re still testing with their dev account?  (rude awakening awaits them if so)

I too am in the process of prepping for re-review (failed first submission due to login problems described elsewhere in forum - some new OTHER facebook weirdness) of two apps that do photo upload of accomplishments, that WERE going to use the old canned-message style, but I think I’ll have to address that too before resubmission (otherwise, assuming I can eventually work around the login bug, they’ll fail me for the prefilled message bit).

I think there are few compliant options left:

showDialog(“feed” - (which is itself deprecated in favor or share) with some generic internet-hosted image, but at least you can prefill links and such

(or a VERY elaborate:  upload image to your OWN server, then feed post with THAT hosted image)

request(“me/photos” - and just upload the image, but with NO caption

or

request(“me/photos” - with a user-supplied caption (via whatever means: native ui or custom)

in either case you’d now want to “bake in” your marketing message into the photo i guess

or perhaps both?  an uncaptioned photo for the accomplishment, along with a separate feed story for the marketing aspect?  users will hate that, report complaints, app eventually banned, no win.

Hoping you’ll post back with any further results of your own, curious, cheers,

Hi Dave, thanks for all your input. Gave me a few things to think about. 

I have decided to have message = “” to try and get my publish_actions review passed with Facebook.  As it’s a screenshot, I think it might be ok.  Once it’s passed review I will change the message parameter back to some pre filled text.  I will keep everyone informed about the outcome.

We have the same error, and we were using: facebook.request(“me/photos”) - with a pre-filled but editable caption. We don’t mind removing the caption as the image has most of the content anyway, but what we did want was a url to download the game.

Is there a way around this? I’m scratching my head trying to think of one.

Also, I’ve noticed something in native.showPopup() that seems to inadvertently violate this rule.  

Take the following code:

local options = { service = "facebook", message = "", listener = socialFBListener, image = { { filename = "myimage.jpg", baseDir = system.DocumentsDirectory }, }, url = "http://mygreatwebsite.com", } native.showPopup( "social", options )

The message field is blank, so we should be ok to call this function. We have a url parameter, which is one of the functions listed in the docs so that should be ok to use.

However when you call native.showPopup() the url parameter is simply added to the text input field automatically when the popup appears, and can be edited by the user. Given that this is a native function call, and Facebook and iOS seem to have worked together to make this happen, it seems odd that it works in a way that violates one of Facebook’s rules.

Does anyone know any more about the matter? Is it in fact treated as a url still, or does it just get added to the message text field as it appears to?

Hi Corona1234, if you use the social plugin you are ok to use a pre filled message for iOS as it doesn’t require publish_actions permissions I believe.  So you can put anything in both the message and url fields that you want.

I have resubmitted my app to Facebook using the Facebook plugin with the message parameter set to message = “”.

My plan is to put the message back in once approved by Facebook prior to submitting to the app store and google play.  I will keep you all informed of my progress.

And failed the review process again.  This time for something regarding not being able to find the permission during login.  I have put it in for re-review so can’t now see the reason it failed. Arghh!!!

The only thing I can think of that would cause this is:

When creating a new test user and playing around with your app, make sure to remove your app from the app settings page on your test users profile.  It might be that the Facebook reviewer didn’t get any login permissions for the test user as I had already granted them when I was using that test user.

What a nightmare!!!  I have tested my app on countless occasions and all is well, yet Facebook keep rejecting.

Also note if you are rejected for the same issue twice in a row you get a warning that you will be suspended from the reviewing process for a period of time if it happens again.

Interesting. Look forward to hear how it ends.

Hey. Is there any info on this? I’m in the same situation right now. I would love some to learn more about this.

Hey. Is there any info on this? I’m in the same situation right now. I would love some to learn more about this.

Any solution for this? I had an app which upload a photo from facebook app to user timeline using php. The app keep being rejected by facebook due to pre-filled text in the publish_action even I removed all the text.

Perhaps these earlier Facebook sharing discussions will be helpful:

https://forums.coronalabs.com/topic/52755-can-corona-enable-limited-facebook-sharing-on-android-via-nativeshowpopup/

Any solution for this? I had an app which upload a photo from facebook app to user timeline using php. The app keep being rejected by facebook due to pre-filled text in the publish_action even I removed all the text.

Perhaps these earlier Facebook sharing discussions will be helpful:

https://forums.coronalabs.com/topic/52755-can-corona-enable-limited-facebook-sharing-on-android-via-nativeshowpopup/