2011-09-26 14 views
7

En algún momento del camino en las últimas semanas, la llamada de autorizar Facebook en iOS falla con una "Página no encontrada". Esto sucede para cualquier usuario que no haya instalado la aplicación o si los permisos de la aplicación han cambiado y el usuario debe aprobar los permisos adicionales. Esto sucede si la aplicación de Facebook maneja la autenticación del usuario o Safari o el cuadro de diálogo emergente. Todos redirigen a una página "Página no encontrada".Facebook autoriza solicitud de permisos rendimiento "Página no encontrada"

de excavación a través del depurador, me encontré con la solicitud inicial URL sea (ID de aplicación reemplaza "[APP_ID]") para la pantalla de inicio de sesión:

https://m.facebook.com/dialog/oauth? type = user_agent pantalla & = toque & redirect_uri = fb [APP_ID]% 3A% 2F% 2Fauthorize & SDK = 2 & alcance = USER_LOCATION% 2Cuser_relationships% 2Cemail% 2Cpublish_stream% 2Coffline_access & client_id = [APP_ID]

La siguiente URL es siendo buscado por el intento de inicio de sesión (supongo que por la URL que el usuario tiene permisos insuficientes):

http://www.facebook.com/dialog/permissions.request?_path=permissions.request & APP_ID = [appid] & redirect_uri = fb% 3A% 3F% 3Fauthorize & SDK = 2 & pantalla [appid] = tocar & type = user_agent & fbconnect = 1 & ondulaciones permanentes = USER_LOCATION% 2Cuser_relationships% 2Cemail% 2Cpublish_stream% 2Coffline_access & sso = iphone-safari & from_login = 1

he comprobado que el ID de Bundle enumerados en Xcode es el mismo como la lista para la configuración de mi aplicación en Facebook.

Como la página de permisos no se muestra, los usuarios nuevos no pueden agregar la aplicación. Las versiones antiguas de mi aplicación que solían funcionar también fallan de la misma manera. ¿Cual podría ser el problema?

+0

Bien, debe_ser algo que ver con la configuración de FB para la aplicación. Pero no tengo idea de qué. He configurado la FB DemoApp para utilizar el app_id de mi aplicación que falla y falla (así que sé que no es necesariamente mi código). Luego lo configuro en una ID de aplicación de aplicación diferente que ya no estoy desarrollando; ¡y funciona! No puedo decir cuál es la diferencia entre las dos configuraciones diferentes. ¡Uf! – wrlee

Respuesta

0

Si el enlace que publica es exactamente el enlace de su aplicación, al parámetro "redirect_uri" le falta la letra "e". "fbconnect" también.

http://www.facebook.com/dialog/permissions.request?_path=permissions.request & APP_ID = [appid] & redirct_uri = fb [appid]% 3A% 3F% 3Fauthorize & SDK = 2 & display = tocar & type = user_agent & fbocnnect = 1 & ondulaciones permanentes = USER_LOCATION% 2Cuser_relationships% 2Cemail% 2Cpublish_stream% 2Coffline_access & sso = iphone-safari & from_login = 1

Además, debe asegurarse de que su [appid] es correcto y fb[appid]%3A%3F%3Fauthorize es el enlace de controlador FB correcto de su aplicación.

+0

No, tuve que transcribirlo, por lo que fue un error tipográfico. ¿Puedes autorizar un nuevo uso en tus aplicaciones de iOS? – wrlee

+0

El código solía funcionar bien. Lo había estado probando como un usuario autorizado durante mucho tiempo y no me di cuenta cuando esto dejó de funcionar. La segunda URL es generada por Facebook, el resultado de mi inicio de sesión como usuario que necesita permitir permisos de la aplicación. La primera URL la genera el SDK de iOS y continúa funcionando para los usuarios que ya han permitido los permisos para la aplicación. – wrlee

+0

@wrlee: no, solo integra Facebook para el sitio web, pero el flujo de OAuth debe ser el mismo. Revisé la URL, funciona para mi aplicación. Sobre los cambios en la configuración de Facebook, noto que FB va a forzar https. ¿Tiene algún efecto en su aplicación? –

5

Bien, me estoy sintiendo un poco estúpido.

El problema era que tenía activado Sandboxing en la configuración de la aplicación en la página de Facebook. Por qué la página de error era tan obtusa me supera.

  1. En la configuración del desarrollador de Facebook: https://developers.facebook.com, edite la configuración de su aplicación.
  2. Seleccione la pestaña "Avanzado", en "Configuración" en el lado izquierdo.
  3. Asegúrese de que el "Modo de espacio aislado" no esté habilitado.
+0

Es un viejo problema para mí también. En el modo de espacio aislado, solo los usuarios que agregue a su equipo de desarrollo pueden acceder a la aplicación; de lo contrario, se volverá a publicar: contenido no encontrado. –

+0

Ah, este problema para mí también, a pesar de que era el administrador de la aplicación. Creo que es porque creé la aplicación de Facebook * después de * iniciar sesión en Facebook en Android. Solución: cierra la sesión de la aplicación de Facebook en Android, vuelve a iniciar sesión. – Timmmm

3

Tuve el mismo problema cuando mi ID de aplicación no era correcta en la Lista de información.

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

Descubrí que no se debe colocar la ID de la aplicación de Apple, sino la ID de aplicación de Facebook. (General en la configuración de la aplicación en la página web de desarrolladores de Facebook, en Nombre de aplicación hay ID de aplicación y Secreto de aplicación)

Hay 3 últimos números ocultos por xxx.

Cuestiones relacionadas