2010-04-26 27 views
8

Estoy tratando de experimentar con el nuevo sistema de autenticación de Facebook, y no puedo obtener el inicio de sesión para trabajar.Facebook Connect 'siguiente' error

Estoy recibiendo el mensaje de error:


API Código de error: 100

API error Descripción: Parámetro no válido

mensaje de error: al lado no es propiedad de la aplicación.


la dirección URL que está siendo enviada a facebook es:

http://www.facebook.com/connect/uiserver.php?app_id=444444444444444&next=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%23%3F%3D%26cb%3Df357eceb0361a8a%26origin%3Dhttp%253A%252F%252Fwww.mysite.com%252Ff38fea4f9ea573%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df23b800f8a78%26result%3DxxRESULTTOKENxx&display=popup&channel=http%3A%2F%2Fwww.mysite.com%2Ffbtester.php&cancel=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%23%3F%3D%26cb%3Df6095a98598be8%26origin%3Dhttp%253A%252F%252Fwww.mysite.com%252Ff38fea4f9ea573%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df23b800f8a78%26result%3DxxRESULTTOKENxx&locale=en_US&return_session=1&session_version=3&fbconnect=1&canvas=0&legacy_return=1&method=permissions.request

Nota esa variable 'Siguiente' en la dirección URL es:

siguiente = http% 3A% 2F% 2Fstatic.ak.fbcdn.net% 2Fconnect% 2Fxd_proxy.php% 23% 3F% 3D% 26cb% 3Df357eceb0361a8a% 26origin% 3Dhttp% 253A% 252F% 252Fwww.mysite.com% 252Ff38fea4f9ea573% 26relation% 3Dopener% 26transport% 3Dpostmessage% 26frame% 3Df23b800f8a78% 26result% 3DxxRESULTTOKENxx


¿Alguna idea de lo que podría estar yendo mal? Todo lo que he hecho es copiar y pegar el código de demostración de inicio de sesión de Facebook desde la página web de facebook:


<?php 
define('FACEBOOK_APP_ID', 'your application id'); 
define('FACEBOOK_SECRET', 'your application secret'); 

function get_facebook_cookie($app_id, $application_secret) { 
    $args = array(); 
    parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args); 
    ksort($args); 
    $payload = ''; 
    foreach ($args as $key => $value) { 
    if ($key != 'sig') { 
     $payload .= $key . '=' . $value; 
    } 
    } 
    if (md5($payload . $application_secret) != $args['sig']) { 
    return null; 
    } 
    return $args; 
} 

$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET); 

?> 


<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:fb="http://www.facebook.com/2008/fbml"> 
    <body> 
    <?php if ($cookie) { ?> 
     Your user ID is <?= $cookie['uid'] ?> 
    <?php } else { ?> 
     <fb:login-button></fb:login-button> 
    <?php } ?> 

    <div id="fb-root"></div> 
    <script src="http://connect.facebook.net/en_US/all.js"></script> 
    <script> 
     FB.init({appId: '<?= FACEBOOK_APP_ID ?>', status: true, 
       cookie: true, xfbml: true}); 
     FB.Event.subscribe('auth.login', function(response) { 
     window.location.reload(); 
     }); 
    </script> 
    </body> 
</html> 

Gracias por la ayuda!

+0

Utilice el formato correcto en su pregunta, esto es completamente ilegible. – Rabbott

+0

Perdón por eso ... He estado teniendo problemas para formatearlo correctamente. – Mark

Respuesta

1

No sé mucho acerca de la API de Facebook, pero sí sé que tiene que reemplazar realmente el texto your application id y your application secret con su ID de aplicación y su aplicación secreta. :)

+1

Hola Nick, Gracias por la respuesta. Ese no es el problema. Ya lo hice. Simplemente, no creo que sea apropiado mostrar mi ID de aplicación y el secreto de la aplicación en este código. ¡Agradezco la ayuda! – Mark

5

Me estaba saliendo el mismo error, pero estoy usando Rails y el problema fue que la URL de Connect no se actualizó. Mi aplicación local se está ejecutando en el puerto 3000 y la URL de conexión apuntaba al puerto 80.

Vea si el cambio funciona para usted.

  1. Goto http://www.facebook.com/developers
  2. Editar la aplicación que se está trabajando en
  3. Haga clic en la pestaña Connect a la izquierda
  4. Verificar si Connect URL es configurar correctamente
+0

Para el mío, había dejado el 'www' en Facebook, pero mi host se reenvió automáticamente a www ... por lo que las URL eran diferentes –

0

si la URL de conexión es correcta, y todavía no funciona, vaya a la configuración de su aplicación, especifique un dominio base correcto. Para la prueba, puede usar localhost. Si aún no hay suerte, vaya a la configuración de migración, desactive "nuevo permiso de datos"

+0

Adelein Rodriguez, en su dominio base, solo especifique ddailygirl.com – JiJ

1

Tuve el mismo problema y no pude resolverlo. Era el dominio base como dijo Ji. Yo votaría, pero acabo de unirme. Los requisitos en las páginas de configuración FB son muy malos ... Usé localhost.

También usé una cadena de consulta de? Nothing = 1 para probar b/c del nuevo requisito donde dice: connect url debe señalar a un directorio (es decir, finaliza con una "/") o una página dinámica (es decir, tiene un "?" en alguna parte.

Por lo tanto, no puede simplemente poner default.aspx. Tiene que terminar con una barra o tener un? que es un requisito raro para conectar

Gracias Ji !!!

1

pude obtener esta resuelto con estos ajustes:.

dominio Base: dominio .com (esto también se debe resolver de adelein problemas con múltiples subdominios)

URL de conexión: debe ser una URL http: // o https: // válida con una barra al final O un '?' En algún lugar de la URL, lo que significa una cadena de consulta. Básicamente, Facebook no quiere que envíes personas a páginas estáticas que no procesan correctamente la autorización que configuran, supongo.

+0

¿dónde ves? esos ajustes? – fastmultiplication

+0

http://www.facebook.com/developers/apps.php Haga clic en su aplicación, luego "editar configuraciones" Haga clic en "Sitio web" – jenming

+0

PERO, ¡parece que han cambiado su página de configuración! Haga clic en "Sitio web" - eso tiene dominio. Pero Connect URL parece haber desaparecido ... – jenming

Cuestiones relacionadas