Android Facebook Post Image

Hi Guys! 

      I’m totally upset with facebook integration , i did 3 times review in facebook but still my app was not approved , help me to overcome this , wait for your reply’s asap.

see the attachment.

Thanks

Their messages are pretty straight forward.  You cannot pre-fill out any text that the user can just simply hit a button and submit.  They have been cracking down on this for some time.

I don’t fully understand the Android issue, though it looks like they can’t see where your Android version of the app ever requests extra permissions.

Rob

Hi Rob,

 Thank you for the quick response.i used the below code for facebook post ( image ).

t.fbPost = function(params,tpe)

print("FaceBook "…tpe)

local listener = {}

function listener:popup( event )

        print( "action: " … tostring( event.action ) )

        if event.action == “sent” then 

    local function onComplete(event)

    if event.action == “clicked” then composer.hideOverlay(“slideDown”); end

end

        native.showAlert( _gt.appTitle , “Lola Photo was Sent” , { “ok” } , onComplete )

    end

     return true    

    end

– login facebook 

local isFacebookAvailable = native.canShowPopup( “social”, “facebook” )

if isFacebookAvailable then 

local options = { service = “facebook” ,message = “”,listener = listener,image = { { filename = params.filename , baseDir = system.DocumentsDirectory } } }

native.showPopup( “social”, options )

else 

local function onComplete(event)

if event.action == “clicked” then 

if event.index == 2 then 

local options = {

  iOSAppId = “284882215”,

  androidAppPackageName = “com.facebook.katana”,

  supportedAndroidStores = { “google”, “samsung”, “amazon”, “nook” },

}

native.showPopup( “appStore”, options )

end 

end 

return true

end

–native.showAlert( _gt.appTitle , “Install Facebook App!” , { “Cancel” , “Store” } , onComplete )

native.showAlert( “Cannot send " … serviceName … " message.”, “Please setup your " … serviceName … " account or check your network connection.”, { “OK” , “STORE” } , onComplete )

–facebook.login(_gt.fbid,fblistener,{“publish_actions”})

end 

 return true 

end

any thing wrong here ? . regarding android version 

Thanks

If I’m being honest, your code is hard to read.  Perhaps edit it and put and tags around it (leave out the space after the ['s).  I also see your call to get publish_actions is commented out, but it’s really hard to follow the logic of your code .

Rob

t.fbPost = function(params,tpe)

      print("FaceBook "…tpe)

      –

      local listener = {}

      function listener:popup( event )

            print( "action: " … tostring( event.action ) )

            if event.action == “sent” then 

                local function onComplete(event)

                     if event.action == “clicked” then composer.hideOverlay(“slideDown”); end

                end

                native.showAlert( _gt.appTitle , “Lola Photo was Sent” , { “ok” } , onComplete )

            end

       return true    

     end

   

     – login facebook

     local isFacebookAvailable = native.canShowPopup( “social”, “facebook” )

     if isFacebookAvailable then 

              local options = { service = “facebook” ,message = “”,listener = listener,image = { { filename = params.filename , baseDir =                                                  system.DocumentsDirectory } } }

              native.showPopup( “social”, options )

     else 

         local function onComplete(event)

               if event.action == “clicked” then 

                     if event.index == 2 then 

                            local options = {

                                             iOSAppId = “284882215”,

                                             androidAppPackageName = “com.facebook.katana”,

                                             supportedAndroidStores = { “google”, “samsung”, “amazon”, “nook” },

                                          }

                            native.showPopup( “appStore”, options )

                     end 

               end 

           return true

         end

       native.showAlert( “Cannot send " … serviceName … " message.”, “Please setup your " … serviceName … " account or check your                                                network connection.”, { “OK” , “STORE” } , onComplete )

    end 

 return true 

end

Please find the below attached lua file.

Thanks

That doesn’t look like you are really using the facebook library, but you’re using the social popup.  Are you calling facebook.init() any where or calling facebook.request() anywhere?

Rob

Hi Rob.

     instead of browser based facebook login , i used social popup method. please see the above attached sociallib.lua file. it executes well in ios.

Thanks

Equire

Not sure why Rob hasn’t responded, but FYI:

http://docs.coronalabs.com/plugin/CoronaProvider_native_popup_social/showPopup.html
“does not support Facebook”

Which links to a page showing FB being evil:
https://developers.facebook.com/bugs/332619626816423/
“This issue is going to be closed by design because our API does not support pre-filling the message for users as seen in our Policy Documentation here (https://developers.facebook.com/docs/guides/policy/application_integration_points/) under Platform Policy IV.2.”

Even though I can detect the FB app is installed on my Nexus 5:
V/Corona  ( 6294): > Class.forName: CoronaProvider._native.popup.social.LuaLoader
V/Corona  ( 6294): < Class.forName: CoronaProvider._native.popup.social.LuaLoader
V/Corona  ( 6294): Loading via reflection: CoronaProvider._native.popup.social.LuaLoader
I/Corona  ( 6294): main: found at least one sharing service
I/Corona  ( 6294): main: package twitter not installed on device
I/Corona  ( 6294): main: found package facebook installed on device 

Some more possibly-related info is here: http://forums.coronalabs.com/topic/52755-can-corona-enable-limited-facebook-sharing-on-android-via-nativeshowpopup/

Their messages are pretty straight forward.  You cannot pre-fill out any text that the user can just simply hit a button and submit.  They have been cracking down on this for some time.

I don’t fully understand the Android issue, though it looks like they can’t see where your Android version of the app ever requests extra permissions.

Rob

Hi Rob,

 Thank you for the quick response.i used the below code for facebook post ( image ).

t.fbPost = function(params,tpe)

print("FaceBook "…tpe)

local listener = {}

function listener:popup( event )

        print( "action: " … tostring( event.action ) )

        if event.action == “sent” then 

    local function onComplete(event)

    if event.action == “clicked” then composer.hideOverlay(“slideDown”); end

end

        native.showAlert( _gt.appTitle , “Lola Photo was Sent” , { “ok” } , onComplete )

    end

     return true    

    end

– login facebook 

local isFacebookAvailable = native.canShowPopup( “social”, “facebook” )

if isFacebookAvailable then 

local options = { service = “facebook” ,message = “”,listener = listener,image = { { filename = params.filename , baseDir = system.DocumentsDirectory } } }

native.showPopup( “social”, options )

else 

local function onComplete(event)

if event.action == “clicked” then 

if event.index == 2 then 

local options = {

  iOSAppId = “284882215”,

  androidAppPackageName = “com.facebook.katana”,

  supportedAndroidStores = { “google”, “samsung”, “amazon”, “nook” },

}

native.showPopup( “appStore”, options )

end 

end 

return true

end

–native.showAlert( _gt.appTitle , “Install Facebook App!” , { “Cancel” , “Store” } , onComplete )

native.showAlert( “Cannot send " … serviceName … " message.”, “Please setup your " … serviceName … " account or check your network connection.”, { “OK” , “STORE” } , onComplete )

–facebook.login(_gt.fbid,fblistener,{“publish_actions”})

end 

 return true 

end

any thing wrong here ? . regarding android version 

Thanks

If I’m being honest, your code is hard to read.  Perhaps edit it and put and tags around it (leave out the space after the ['s).  I also see your call to get publish_actions is commented out, but it’s really hard to follow the logic of your code .

Rob

t.fbPost = function(params,tpe)

      print("FaceBook "…tpe)

      –

      local listener = {}

      function listener:popup( event )

            print( "action: " … tostring( event.action ) )

            if event.action == “sent” then 

                local function onComplete(event)

                     if event.action == “clicked” then composer.hideOverlay(“slideDown”); end

                end

                native.showAlert( _gt.appTitle , “Lola Photo was Sent” , { “ok” } , onComplete )

            end

       return true    

     end

   

     – login facebook

     local isFacebookAvailable = native.canShowPopup( “social”, “facebook” )

     if isFacebookAvailable then 

              local options = { service = “facebook” ,message = “”,listener = listener,image = { { filename = params.filename , baseDir =                                                  system.DocumentsDirectory } } }

              native.showPopup( “social”, options )

     else 

         local function onComplete(event)

               if event.action == “clicked” then 

                     if event.index == 2 then 

                            local options = {

                                             iOSAppId = “284882215”,

                                             androidAppPackageName = “com.facebook.katana”,

                                             supportedAndroidStores = { “google”, “samsung”, “amazon”, “nook” },

                                          }

                            native.showPopup( “appStore”, options )

                     end 

               end 

           return true

         end

       native.showAlert( “Cannot send " … serviceName … " message.”, “Please setup your " … serviceName … " account or check your                                                network connection.”, { “OK” , “STORE” } , onComplete )

    end 

 return true 

end

Please find the below attached lua file.

Thanks

That doesn’t look like you are really using the facebook library, but you’re using the social popup.  Are you calling facebook.init() any where or calling facebook.request() anywhere?

Rob

Hi Rob.

     instead of browser based facebook login , i used social popup method. please see the above attached sociallib.lua file. it executes well in ios.

Thanks

Equire

Not sure why Rob hasn’t responded, but FYI:

http://docs.coronalabs.com/plugin/CoronaProvider_native_popup_social/showPopup.html
“does not support Facebook”

Which links to a page showing FB being evil:
https://developers.facebook.com/bugs/332619626816423/
“This issue is going to be closed by design because our API does not support pre-filling the message for users as seen in our Policy Documentation here (https://developers.facebook.com/docs/guides/policy/application_integration_points/) under Platform Policy IV.2.”

Even though I can detect the FB app is installed on my Nexus 5:
V/Corona  ( 6294): > Class.forName: CoronaProvider._native.popup.social.LuaLoader
V/Corona  ( 6294): < Class.forName: CoronaProvider._native.popup.social.LuaLoader
V/Corona  ( 6294): Loading via reflection: CoronaProvider._native.popup.social.LuaLoader
I/Corona  ( 6294): main: found at least one sharing service
I/Corona  ( 6294): main: package twitter not installed on device
I/Corona  ( 6294): main: found package facebook installed on device 

Some more possibly-related info is here: http://forums.coronalabs.com/topic/52755-can-corona-enable-limited-facebook-sharing-on-android-via-nativeshowpopup/