error codes facebook facebook-javascript-sdk

codes - error 602 api facebook



Error API de Facebook 191 (10)

Estoy tratando de integrar mi proyecto con Facebook. Al principio, estoy dando pequeños pasos e intento ingresar, obtener una sesión de Facebook y obtener algunos datos de usuario. Lo estoy desarrollando localmente para que la configuración de mi aplicación de Facebook sea:

site URL: http://127.0.0.1:8888/mySite/

El lienzo URL es el mismo que el anterior. No he especificado un dominio del sitio.

Sin embargo, cuando hago clic en el botón de inicio de sesión, aparece un error:

API Error Code: 191 API Error Description: The specified URL is not owned by the application Error Message: redirect_uri is not owned by the application.

Por el momento no he escrito ningún código del lado del servidor para tratar con los redireccionamientos, etc. Todo lo que he hecho es agregar el JavaScript SDK basado en el tutorial en Facebook para sitios web .

¿Qué he hecho mal? Obviamente, tiene algo que ver con la configuración de mi aplicación de Facebook, ¡pero no puedo ver qué!


Algo que me gustaría agregar, ya que esta es la primera pregunta del error 191 en google:

Al redireccionar a Facebook en lugar de a su propio sitio para una solicitud firmada, es posible que experimente este error si el usuario tiene una navegación segura y su redirección a Facebook sin SSL.


Esto es solo por un error de URL.

Cualquier URL del sitio web especificada debería ser correcta.

Mencioné la URL del sitio web como http://localhost:3000/ y el dominio como localhost, pero en mi navegador corría http://0.0.0.0:3000/ .

Cuando ejecuté el servidor como localhost:3000 , resolvió el problema.

Como mencioné, la URL del sitio como localhost Facebook redireccionará a la misma, si estamos ejecutando 0.0.0.0:3000 , surgirá el error de que "La URL dada no está permitida por la configuración de la aplicación".


Lo arreglé pasando la url de redirección a FacebookRedirectLoginHelper::getAccessToken() en mi función de devolución de llamada:

Cambiando de

try { $accessToken = $helper->getAccessToken(); } ...

a

try { $accessToken = $helper->getAccessToken($fbRedirectUrl); } ...

Estoy desarrollando en una caja vagabunda, y parece que FacebookRedirectLoginHelper::getCurrentUrl() tenía problemas al generar una URL válida.


Para mí, era un dominio de aplicación faltante. Ingresa a la aplicación y asegúrate de que tienes la raíz de tu sitio configurada como dominio de la aplicación. Ver captura de pantalla.


También estaba enfrentando el mismo problema cuando uso el método de autenticación de Facebook. Pero rectifico ese problema con los siguientes cambios en la API de Facebook ( Apps >> My App >> Basic ).

  1. Eliminé la URL que he dado en ===> Aplicación en Facebook (URL de Canvas)
  2. Proporcioné la URL del sitio solo en ===> Sitio web con la opción de inicio de sesión de Facebook

Luego di ese AppId y App Secret en mi página web.

Entonces, al hacer clic en el botón de inicio de sesión, solicita permisos de acceso y luego lo redirecciona para dar url ( sitio web con inicio de sesión de Facebook ).


También he notado que incluso si especifica su sitio web bajo sección - Sitio web con inicio de sesión en Facebook -> URL del sitio como, por ejemplo, http://example.com , pero si la sección Dominios de la aplicación está vacía y abre el sitio web como www.ejemplo. com obtendrás este error también. Para evitarlo en la sección "Dominios de la aplicación" escriba example.com, que permitirá subdominios, como www.example.com, algo.example.com, etc.


Tenía el mismo problema:

$params = array(''redirect_uri'' => ''facebook.com/pages/foobar-dev''); $facebook->getLoginUrl($params);

Cuando cambié el redirect_uri de la página de devloper a la página en vivo, apareció el error 191.

Así que borré los $ params:

$facebook->getLoginUrl();

Después de la solicitud de la aplicación, ahora FB redirige a la URL de la aplicación en sí fe: my.domain.com

Lo que hago ahora es verificar en index.php de mi aplicación si estoy dentro del iframe de FB o no. Si no, redirecciono a la página de FB en vivo:

$app = ''facebook.com/pages/foobar-live''; $rd = (isset($_SERVER[''HTTP_REFERER''])) ? parse_url($_SERVER[''HTTP_REFERER''], PHP_URL_HOST) : false; if ($rd == ''apps.facebook.com'' || (!isset($_REQUEST[''signed_request'']))) { echo ''<script>window.parent.location = "''.$app.''";</script>''; die(); }


Trabajando localmente ... No pude conseguir que funcione la API de feeds, pero la API de intercambio funcionó casi de inmediato sin problemas.



ACTUALIZAR:
Para responder al código de error API: 191
El redirect_uri debe ser igual (o relativo) a la URL del sitio.

Consejo: Use URL base en lugar de URL completas que apuntan a páginas específicas.

NO RECOMENDADO: Por ejemplo, si usa www.mydomain.com/fb/test.html como URL de su sitio y tiene www.mydomain.com/fb/secondPage.html como redirect_uri , obtendrá el error 191.

RECOMENDADO: Por lo tanto, en su lugar, debe configurar su URL del sitio a una URL base como: www.mydomain.com/ O www.mydomain.com/fb/ .

Hoy revisé la aplicación de ejemplo de Facebook Python , y me sorprendió que dijera claramente que puede usar http://localhost:8080/ como URL del sitio si está desarrollando localmente:

Configure la URL del sitio y apúntela a su servidor web. Si está desarrollando localmente, puede usar http://localhost:8080/

Aunque estaba seguro de que no puedes hacer eso, según mi propia experiencia (aunque es una prueba muy antigua), ¡parece que en realidad puedes probar tu aplicación de Facebook a nivel local!

Así que recogí una aplicación mía antigua y edité su nombre, URL del sitio y URL del lienzo: URL del sitio: http://localhost:80/fblocal/

Descargué el último Facebook PHP-SDK y lo lancé en mi carpeta xampp/htdocs/fblocal/ .

¡Pero tengo el mismo error que el tuyo! Noté que XAMPP está haciendo una redirección automática a http://localhost/fblocal/ así que cambié la configuración a simplemente http://localhost/fblocal/ y el error desapareció PERO tuve que eliminar la aplicación (de la configuración de privacidad ) y reinstalar mi aplicación y aquí están los resultados:

Después de eso, solicité el permiso publish_stream y pude publicar en mi perfil (usando PHP-SDK):

$user = $facebook->getUser(); if ($user) { try { $post = $facebook->api(''/me/feed'', ''post'', array(''message''=>''Hello World, from localhost!'')); } catch (FacebookApiException $e) { error_log($e); $user = null; } }

Resultados: