27 votes

Facebook iOS Safari "Impossible d'ouvrir l'erreur de page" lors de l'authentification de l'utilisateur avec l'authentification unique

Je suis en train de tourner en rond avec ce problème - et il semble que Facebook a quelques billets à ce sujet, mais je voulais voir si quelqu'un avait le même problème, je vais avoir et a trouvé un emploi temporaire ou de meilleure solution.

J'ai téléchargé Facebook de "DemoApp", et peut les mettre dans mon appId dans son info.plist de la manière suivante: fb1234567890 (où 1234567890 est mon appId). Il peut authentifier l'utilisateur par le multitâche Safari, pour entrer mes informations d'identification, permettant à ma demande d'accès, puis rediriger le retour à la "DemoApp" avec moi connecté (et je demande à mon information parfaite).

MAINTENANT, je suis en train d'intégrer DemoApp de la fonctionnalité dans mon application existante.

Je suis en mesure d'accéder à l'écran de connexion et entrer mes informations d'identification. Il me permet de donner mon application accès à mes renseignements personnels - je clique allow et Safari processus d'une nouvelle demande, et puis il renvoie le message d'erreur: Safari cannot open the request because the address is invalid à l'URL: http://www.facebook.com/connect/uiserver.php

CEPENDANT, Si je dois DemoApp installé sur mon simulateur et ma propre application, il pourra REVENIR à DemoApp avec mes connecté avec succès. Si je désinstalle DemoApp et essayez à nouveau avec mon application, j'obtiens le Safari d'erreur.

QUE PUIS-JE FAIRE POUR RÉSOUDRE CE PROBLÈME?? Toute aide serait super; je suis cogner ma tête ici.:(

Mon info.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLName</key>
            <string></string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>fb1234567890</string>
            </array>
        </dict>
    </array>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleDisplayName</key>
    <string>${PRODUCT_NAME}</string>
    <key>CFBundleExecutable</key>
    <string>${EXECUTABLE_NAME}</string>
    <key>CFBundleIconFile</key>
    <string></string>
    <key>CFBundleIdentifier</key>
    <string>com.yourcompany.${PRODUCT_NAME:rfc1034identifier}</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>${PRODUCT_NAME}</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>1.0</string>
    <key>LSRequiresIPhoneOS</key>
    <true/>
    <key>NSMainNibFile</key>
    <string>MainWindow</string>
</dict>
</plist>

38voto

Mark Probst Points 1921

L'entrée CFBundleURLTypes est incorrecte. Ça devrait ressembler à ça:

 <key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb1234567890</string>
        </array>
    </dict>
</array>
 

6voto

Paul Lettieri Points 150

J'ai eu une expérience très similaire. J'ai trouvé que le plist changements que je faisais n'étaient tout simplement pas être absorbé dans le simulateur, même après un nettoyage de construire. J'ai été en mesure de leur faire prendre par l'évolution du Matériel->paramètre de Périphérique à quelque chose de différent, et ensuite de retour à nouveau. D'une certaine manière, cela semble avoir causé la plist change de registre avec le système d'exploitation sur le simulateur, alors que rien d'autre n'a eu cet effet. Pas sûr que c'est la "bonne" façon de le faire, ou si quelque chose dans les paramètres de construction est foiré, mais voilà, pour moi, n'a contourner le problème que vous décrivez.

3voto

bkurzius Points 1167

La réponse de Marks m'a orienté dans la bonne direction mais mon problème était un peu différent. Pour une raison quelconque, le plist ressemblait à ceci:

 <key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb1234567890
[defaults setObject:[facebook expirationDate] forKey:@&quot;FBExpirationDat</string>
        </array>
    </dict>
</array>
 

Je viens de supprimer les données après l'id et cela a été corrigé:

 <key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb1234567890</string>
        </array>
    </dict>
</array>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X