loguearse ejemplos developers developer crear con aplicacion php facebook api sdk

ejemplos - Facebook PHP api: "no url set"-aleatorio



loguearse con facebook php (1)

Esto tiene que ver con problemas con IPv6. Para resolver esto, necesita incluir la siguiente línea en su API de Facebook ...

if(phpversion() >= 5.3) { Facebook::$CURL_OPTS[CURLOPT_IPRESOLVE] = CURL_IPRESOLVE_V4; };

Tenga en cuenta que esta alternativa solo funciona hasta la versión 5.3 de PHP, por lo que debe asegurarse de incluir la detección de versión en su código.

(Obtenido de Silvio Medice - Facebook-> api ("/ me") genera "CurlException: 3: ¡Sin URL establecida!" )

Me sale este error en ocasiones aleatorias :

Fatal error: Uncaught CurlException: 3: No URL set! thrown in /****/****/***/****/facebook/facebook-client/base_facebook.php on line 905

Estoy usando el último php SDK del repositorio de GIT (¡descargado hoy!). El usuario ya ha iniciado sesión en facebook cuando esto sucede.

Este comportamiento comenzó hace 2 semanas de la nada.

¿Qué puede estar mal?

ACTUALIZACIÓN: Cuando elimino todas las cookies asociadas con el dominio, el problema se resuelve. Creo que tiene que hacer algo con las cookies fbm_xxxxxxx y fbsr_xxxxxxxx que no se detectan correctamente. Sin embargo, aún puede regresar en ocasiones "aleatorias", lo que me obliga a borrar todas las cookies asociadas con ese dominio.

ACTUALIZACIÓN: el error se produce en este fragmento de código:

try { $user_profile = $facebook->api(''/me''); } catch (FacebookApiException $e) { error_log($e); $isfb = null; setcookie(''fbm_''.$facebook->getAppId(), '''', time()-100, ''/'', ''.mydomain.com''); }

que eventualmente llama a esta función en base_facebook.php:

protected function makeRequest($url, $params, $ch=null) { if (!$ch) { $ch = curl_init(); } $opts = self::$CURL_OPTS; if ($this->getFileUploadSupport()) { $opts[CURLOPT_POSTFIELDS] = $params; } else { $opts[CURLOPT_POSTFIELDS] = http_build_query($params, null, ''&''); } $opts[CURLOPT_URL] = $url; // disable the ''Expect: 100-continue'' behaviour. This causes CURL to wait // for 2 seconds if the server does not support this header. if (isset($opts[CURLOPT_HTTPHEADER])) { $existing_headers = $opts[CURLOPT_HTTPHEADER]; $existing_headers[] = ''Expect:''; $opts[CURLOPT_HTTPHEADER] = $existing_headers; } else { $opts[CURLOPT_HTTPHEADER] = array(''Expect:''); } curl_setopt_array($ch, $opts); $result = curl_exec($ch); if (curl_errno($ch) == 60) { // CURLE_SSL_CACERT self::errorLog(''Invalid or no certificate authority found, ''. ''using bundled information''); curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . ''/fb_ca_chain_bundle.crt''); $result = curl_exec($ch); } // With dual stacked DNS responses, it''s possible for a server to // have IPv6 enabled but not have IPv6 connectivity. If this is // the case, curl will try IPv4 first and if that fails, then it will // fall back to IPv6 and the error EHOSTUNREACH is returned by the // operating system. if ($result === false && empty($opts[CURLOPT_IPRESOLVE])) { $matches = array(); $regex = ''/Failed to connect to ([^:].*): Network is unreachable/''; if (preg_match($regex, curl_error($ch), $matches)) { if (strlen(@inet_pton($matches[1])) === 16) { self::errorLog(''Invalid IPv6 configuration on server, ''. ''Please disable or get native IPv6 on your server.''); self::$CURL_OPTS[CURLOPT_IPRESOLVE] = CURL_IPRESOLVE_V4; curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); $result = curl_exec($ch); } } } if ($result === false) { $e = new FacebookApiException(array( ''error_code'' => curl_errno($ch), ''error'' => array( ''message'' => curl_error($ch)."/n".$opts[CURLOPT_POSTFIELDS]."<br/>".$opts[CURLOPT_URL]."/n", ''type'' => ''CurlException'', ), )); curl_close($ch); throw $e; } curl_close($ch); return $result; }

Cuando me hice eco de $opts[CURLOPT_POSTFIELDS] y $opts[CURLOPT_URL] , tanto los postfields como la URL se configuraron correctamente. ¿Es posible que sea un problema de servidor?

ACTUALIZACIÓN: si espero después de un tiempo (aleatorio) y actualizo la página, todo volverá a estar bien.