iOS 6 - Facebook sharing procedure fails with error “The proxied app is not already installed”

前端 未结 5 662
生来不讨喜
生来不讨喜 2020-12-30 23:25

Though, there is such a question Facebook Error (7) iOS 6 it\'s already closed without any answer! While obtaining an access to user\'s facebook account I\'ve got an error:

相关标签:
5条回答
  • 2020-12-30 23:51

    After experiencing this error on one of my devices (after seeing the correct, expected iOS alert view asking for me to approve Facebook access to my app):

    'The Facebook server could not fulfill this access request: Invalid application ID.'

    I finally found the problem.

    Although it initially appears to be a problem with the Facebook app setup on the FB developer site it turned out that my device's iOS Facebook account no longer had a valid password associated with it - this can happy when users restore an iOS backup to a new device. Once I sorted that in my device settings everything worked as expected.

    I've not experienced any problems requesting 'publish_stream' in the first FB permissions access request - I actually think the real problem here is that the error messages are so random that they don't help developers to locate the source of the errors we're experiencing thanks to Apple and Facebook's lack of unity!

    0 讨论(0)
  • 2020-12-30 23:55

    The error message is not clear since "app" could be your iOS app? Facebook.app on the phone? Facebook app? The "proxied app" is the Facebook app, and "not already installed" means, it's not yet been associated with the Facebook user online in terms of permissions.

    The first time your Facebook app connects to the users Facebook account, you must specify the basic info value(s) in your ACFacebookPermissionsKey key of the options dictionary. Other Facebook SDK's past and present such as the Javascript or PHP libraries by default supply basic info as the key, so you never had to. It seems the native integration in iOS doesn't do this, thus, if when the user first connects your app to their Facebook account with no permissions supplied, you get this error.

    After you are given access, i.e. - after the user is connected to the app in their privacy settings online, ACFacebookPermissionsKey does as Apple document, become optional.

    It's all a little confusing when you start to try and use the native Facebook integration...

    Using the native Facebook integration you must provide one of the following keys which are basic info keys: email, user_birthday, or user_location.

    To quote Facebook (source):

    To create this basic connection using the iOS 6 native Auth Dialog, apps must request access to a user's basic profile information by asking for one of email, user_birthday, or user_location permissions.

    0 讨论(0)
  • 2020-12-30 23:58

    We had the same problem and after taking a closer look at the iOS facebook documentation ad

    https://developers.facebook.com/docs/howtos/ios-6/

    I noticed the following paragraph:

    Note, to use iOS 6 native auth, apps need change the way they request permissions from users - apps must separate their requests for read and write permissions.

    I must have read over that one several time but it contained the solution:

    You have to do multiple request for access if you want to grant write (publish access). So now we first ask for permission 'email' to get read permission and then for 'publish_action' to be able to post to the timeline.

    0 讨论(0)
  • 2020-12-30 23:58

    A few more things that one can try other than the above suggestions is checking your app settings on facebook.com here -

    https://developers.facebook.com/apps/<*APP_ID*>/summary
    
    • Make sure that the SandBox Mode is set to Off

      Also,

      Under "Select how your app integrates with Facebook"

      Select-> Native iOS App

    • Set your Bundle ID
    • You can set any temporary integer value for iPhone/iPad App store ID
    • Set Facebook login to Enabled
    • Listed Platforms is Native iPhone App &/or Native iPad App

    Save changes and try after some time as it might take a few minutes for facebook to sync the changes to all its servers.

    0 讨论(0)
  • 2020-12-31 00:02

    I've solved this problem! It was because I do not pass permissions array! Though the ACAccountStore class states that this parameter is optional, it is not! enter image description here

    More over the application could launch and ask for basic permissions(as it is implied)!

    enter image description here

    So, you must always pass a permissions array.

    Here's also a description of error codes returned by account store:

    typedef enum ACErrorCode {
       ACErrorUnknown = 1,
       ACErrorAccountMissingRequiredProperty,
       ACErrorAccountAuthenticationFailed,
       ACErrorAccountTypeInvalid,
       ACErrorAccountAlreadyExists,
       ACErrorAccountNotFound,
       ACErrorPermissionDenied,
       ACErrorAccessInfoInvalid
    } ACErrorCode;
    

    (I've got ACErrorPermissionDenied here)

    0 讨论(0)
提交回复
热议问题