Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - HiroshiMan

Páginas: [1]
1
Muchas gracias por colaborar con este problema amigo MasterMind, posiblemente otro usuario tenga halla pasado por el mismo problema y efectivamente devuelve getUser(); 0 por que algunos hosting a pesar de tener la extensión cURL habilitada no tiene los permisos necesarios, los de la empresa hosting bloquean estos permisos por ende el apartado de $facebook-> api('/me'); si le anteponemos entre el cacth la line de codigo printl_n (e) podremos ver el error producido, la conección la realiza pero los permisos estan bloqueados desde el mismo servidor, esto es algo que no puede configurarse al se cuenta free, la solución final esta acabada, cambie a un hosting de paga y me habilitaron para trabajar con apis, ahora si puedo tranquilamente recaudar datos y alojarlo a la base de datos, esto sinceramente ha sido una fustración para mi buscando un mes entero la solución y solo por experimentar darme cuenta que solo ha sido una tontada por asi decirlo pero son los riesgos que programador uno tiene sin contar con noción previa. Luego de ver la respuesta de MasterMind era justamente lo que ya habia averiguado por mi cuenta. ¿Solución frente a este problema de la api?
1. Pues obviamente mejor pagar un hosting y hablar con la empresa para verificar sii ellos le proporcionan trabajar con apis y el correspondiente cURL de permisos.
2. Cualquier hosting free ya no cuenta con  este beneficio, si lo que desea es hacerlo sin depender de n hosting de paga, puede crear su propio hosting en casa aunque para los precios de hoy en los hosting no valen la pena montarse uno en casa, cualquier hosting decente con estas cualidades estan a precion muy accesibles desde los 2 dólares, si escucho bien.
3. Esto es únicamente si desea trabajar con la api de la red social mas popular y que sirve mucho mucho como herramienta de productividad para abarcar mas clientes.
Ahora si lo que desea es solo un simple registar y todo eso con el free es mas q suficiente.
4. Si tiene acceso a la configuracion php puede solucionar este problema, claro con conocimientos.

Le comentare mi experiencia con Hostinger, al principio con cuenta free se podia trabajar con la api, hoy hostinger ya no tiene mas esta caracteristica por ende si se encuentra en esa empresa de hostin no la recomiendo por que aun siendo cuenta premium tiene muchos problemas para seguir trabajando con la api, hay algunas tareas que no se pueden llevar a cabo, es limitado, las respuestas que me dieron del soporte tecnico fue que estaban arreglando ese problema y asi te tienen dando vueltas, si usted va a pagar un hosting consigase uno decente y serio que no tenga que andar abriendo un reclamo dos por tres.
Otra cosa importante para dejar ya cerrado el tema es que al momento de crear la aplicación en facebook, recuerden quitar el https que crea por defecto, de lo contrario no podra acceder ya que el protocolo https unicamente lo brindan empresas pagas de hosting con planes mayores al plan basico.
También otro error muy común que se produce es no tener el sandBox habilitado de la aplicación, esto es un error muy básico y tonto pero me paso, ya que funcionaba de lo mas bien desde mi maquina pero mis clientes no podian acceder, con el sandBox habilitado permite el ingreso de cualquier usuario a nuestra aplicación y por ende realizar las peticiones.
 
Todo esto lo dejo como ayuda y que no pasen lo mismo por lo que pase. Saludos y gracias nuevamente  a MasterMind me despido Saludos.

2
Ahora con respecto a lo que me habias dicho de Https si eso lo arregle, pero lamentablemente sigue igual :( estuve imprimiendo y probando el código y al parecer el problema es de: $facebook->api('/me');
ya que hice un : catch (FacebookApiException $e) {
                print_r($e);
              error_log($e);
              $user_id = null;
             
            }

y me arroja este error:

FacebookApiException Object ( [result:protected] => Array ( [error_code] => 7 [error] => Array ( [message] => couldn't connect to host [type] => CurlException ) ) [message:protected] => couldn't connect to host [string:private] => [code:protected] => 7 [file:protected] => /home/a6143165/public_html/facebook/src/base_facebook.php [line:protected] => 1027 [trace:private] => Array (
  • => Array ( [file] => /home/a6143165/public_html/facebook/src/base_facebook.php [line] => 944 [function] => makeRequest [class] => BaseFacebook [type] => -> [args] => Array (
  • => https://graph.facebook.com/me [1] => Array ( [method] => GET [access_token] => 733671159996956|cfe2e245f72e9c0635b6e0e9fcd82762 [appsecret_proof] => 7b773b6bfd2d0758a26aa158b03bee9ecafb33f3b98e902d90ceaa4e9a8b9d3d ) ) ) [1] => Array ( [file] => /home/a6143165/public_html/facebook/src/base_facebook.php [line] => 907 [function] => _oauthRequest [class] => BaseFacebook [type] => -> [args] => Array (
  • => https://graph.facebook.com/me [1] => Array ( [method] => GET ) ) ) [2] => Array ( [file] => /home/a6143165/public_html/facebook/src/base_facebook.php [line] => 687 [function] => _graph [class] => BaseFacebook [type] => -> [args] => Array (
  • => /me ) ) [3] => Array ( [file] => /home/a6143165/public_html/facebook/register.php [line] => 28 [function] => api [class] => BaseFacebook [type] => -> [args] => Array (
  • => Array (
  • => Facebook Object ( [sharedSessionID:protected] => [appId:protected] => 733671159996956 [appSecret:protected] => cfe2e245f72e9c0635b6e0e9fcd82762 [user:protected] => 100001426523800 [signedRequest:protected] => Array ( [algorithm] => HMAC-SHA256
    Código: [Seleccionar]
    => AQAO-yXpTuoiFQyWG0cNU5RdJLlaUaZws4EhEZT3X6t3dSD68pFK5K0H2pOf-Ea1Whoa_VgEXi2jkm45ewxOGLX8NgUVp-EPQKsuSJOq_ZurSvIeJFKHYp778fXWEIVfuqmkfo6uS-cHFzepM230N0-CMjaIgM6rxn2F1RhZbjt0IODYEOHHZ0kuJQPA7OaiGwO6ko2B1BS7JtSzuFGiju8dHpNxB-L_NEOVn0DH0DzEP3Hy02Vnb_4zZwaI-ByR_-PKi-s7QlZhTt4VnMUA7H-BiDadidxU8PoOMbzgoXRMoLmYgCESYFndASw5JHvysWwRaNNfy4O1TEgIoq2tsyjb [issued_at] => 1394318577 [user_id] => 100001426523800 ) [state:protected] => [accessToken:protected] => 733671159996956|cfe2e245f72e9c0635b6e0e9fcd82762 [fileUploadSupport:protected] => [trustForwarded:protected] => [allowSignedRequest:protected] => 1 ) [1] => _graph ) [1] => Array ( [0] => /me ) ) ) ) )[/li][/list]


    supuestamente parece q no puede conectar a mi servidor pero si a la aplicación por q puede ser ???

3
Nuevamente Hola MasterMind  :D Bueno tengo buenas y malas noticias, según parece no soy el único que tiene este problema con php, según parece son problemas de Cookies y hay que tocar algo del archivo base_facebook.php para arreglar ese bug pero como no se nada del código q tiene guardado ese archivo busque otra solución, me recomendaron JavaScript, lo estuve probando en mi servidor y si funciona perfectamente, me devuelve datos y todo la info, el problema es que al ser del lado del cliente  y no del servidor no me sirve de nada.

Aprovecho para dejar el código, por si a alguien le hace falta y ahi tiene todo hasta el Graph API, solo hay que cambiar el AppID por el ID de su aplicación pero vuelvo a reiterar que es imposible operar con php para el manejo de datos.

Código: [Seleccionar]
<!DOCTYPE html>
<html xmlns:fb="https://www.facebook.com/2008/fbml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>New JavaScript SDK & OAuth 2.0 based FBConnect | EMOnaTION@2014</title>
        <!--
            @author: Mahmud Ahsan (http://mahmud.thinkdiff.net)
        -->
    </head>
    <body>
        <div id="fb-root"></div>
        <script type="text/javascript">
            var button;
            var userInfo;
           
            window.fbAsyncInit = function() {
                FB.init({ appId: '733671159996956', //change the appId to your appId
                    status: true,
                    cookie: true,
                    xfbml: true,
                    oauth: true});

               showLoader(true);
               
               function updateButton(response) {
                    button       =   document.getElementById('fb-auth');
                    userInfo     =   document.getElementById('user-info');
                   
                    if (response.authResponse) {
                        //user is already logged in and connected
                        FB.api('/me', function(info) {
                            login(response, info);
                        });
                       
                        button.onclick = function() {
                            FB.logout(function(response) {
                                logout(response);
                            });
                        };
                    } else {
                        //user is not connected to your app or logged out
                        button.innerHTML = 'Login';
                        button.onclick = function() {
                            showLoader(true);
                            FB.login(function(response) {
                                if (response.authResponse) {
                                    FB.api('/me', function(info) {
                                        login(response, info);
                                    });    
                                } else {
                                    //user cancelled login or did not grant authorization
                                    showLoader(false);
                                }
                            }, {scope:'email,user_birthday,status_update,publish_stream,user_about_me'}); 
                        }
                    }
                }
               
                // run once with current status and whenever the status changes
                FB.getLoginStatus(updateButton);
                FB.Event.subscribe('auth.statusChange', updateButton);
            };
            (function() {
                var e = document.createElement('script'); e.async = true;
                e.src = document.location.protocol
                    + '//connect.facebook.net/en_US/all.js';
                document.getElementById('fb-root').appendChild(e);
            }());
           
           
            function login(response, info){
                if (response.authResponse) {
                    var accessToken                                 =   response.authResponse.accessToken;
                   
                    userInfo.innerHTML                             = '<img src="https://graph.facebook.com/' + info.id + '/picture">' + info.name
                                                                     + "<br /> Your Access Token: " + accessToken;
                    button.innerHTML                               = 'Logout';
                    showLoader(false);
                    document.getElementById('other').style.display = "block";
                }
            }
       
            function logout(response){
                userInfo.innerHTML                             =   "";
                document.getElementById('debug').innerHTML     =   "";
                document.getElementById('other').style.display =   "none";
                showLoader(false);
            }

            //stream publish method
            function streamPublish(name, description, hrefTitle, hrefLink, userPrompt){
                showLoader(true);
                FB.ui(
                {
                    method: 'stream.publish',
                    message: '',
                    attachment: {
                        name: name,
                        caption: '',
                        description: (description),
                        href: hrefLink
                    },
                    action_links: [
                        { text: hrefTitle, href: hrefLink }
                    ],
                    user_prompt_message: userPrompt
                },
                function(response) {
                    showLoader(false);
                });

            }
            function showStream(){
                FB.api('/me', function(response) {
                    //console.log(response.id);
                    streamPublish(response.name, 'I like the articles of Thinkdiff.net', 'hrefTitle', 'http://thinkdiff.net', "Share thinkdiff.net");
                });
            }

            function share(){
                showLoader(true);
                var share = {
                    method: 'stream.share',
                    u: 'http://thinkdiff.net/'
                };

                FB.ui(share, function(response) {
                    showLoader(false);
                    console.log(response);
                });
            }

            function graphStreamPublish(){
                showLoader(true);
               
                FB.api('/me/feed', 'post',
                    {
                        message     : "I love thinkdiff.net for facebook app development tutorials",
                        link        : 'http://ithinkdiff.net',
                        picture     : 'http://thinkdiff.net/iphone/lucky7_ios.jpg',
                        name        : 'iOS Apps & Games',
                        description : 'Checkout iOS apps and games from iThinkdiff.net. I found some of them are just awesome!'
                       
                },
                function(response) {
                    showLoader(false);
                   
                    if (!response || response.error) {
                        alert('Error occured');
                    } else {
                        alert('Post ID: ' + response.id);
                    }
                });
            }

            function fqlQuery(){
                showLoader(true);
               
                FB.api('/me', function(response) {
                    showLoader(false);
                   
                    //http://developers.facebook.com/docs/reference/fql/user/
                    var query       =  FB.Data.query('select name, profile_url, sex, pic_big from user where uid={0}', response.id);
                    query.wait(function(rows) {
                       document.getElementById('debug').innerHTML = 
                         'FQL Information: '+  "<br />" +
                         'Su Nombre: '      +  rows[0].name                                                            + "<br />" +
                         'Su Sexo: '       +  (rows[0].sex!= undefined ? rows[0].sex : "")                            + "<br />" +
                         'Su Perfil: '   +  "<a href='" + rows[0].profile_url + "'>" + rows[0].profile_url + "</a>" + "<br />" +
                         '<img src="'       +  rows[0].pic_big + '" alt="" />' + "<br />";
                     });
                });
            }
           
           

            function setStatus(){
                showLoader(true);
               
                status1 = document.getElementById('status').value;
                FB.api(
                  {
                    method: 'status.set',
                    status: status1
                  },
                  function(response) {
                    if (response == 0){
                        alert('Your facebook status not updated. Give Status Update Permission.');
                    }
                    else{
                        alert('Your facebook status updated');
                    }
                    showLoader(false);
                  }
                );
            }
           
            function showLoader(status){
                if (status)
                    document.getElementById('loader').style.display = 'block';
                else
                    document.getElementById('loader').style.display = 'none';
            }
           
        </script>
        <?php
        
        
echo "esto es username".$username;
        
?>


        <h3>New JavaScript SDK & OAuth 2.0 based FBConnect | EMOnaTION@2014</h3>
        <button id="fb-auth">Login</button>
        <div id="loader" style="display:none">
            <img src="ajax-loader.gif" alt="loading" />
        </div>
        <br />
        <div id="user-info"></div>
        <br />
        <div id="debug"></div>
       
        <div id="other" style="display:none">
            <a href="#" onclick="showStream(); return false;">Publish Wall Post</a> |
            <a href="#" onclick="share(); return false;">Share With Your Friends</a> |
            <a href="#" onclick="graphStreamPublish(); return false;">Publish Stream Using Graph API</a> |
            <a href="#" onclick="fqlQuery(); return false;">FQL Query Example</a>
           
            <br />
            <textarea id="status" cols="50" rows="5">Write your status here and click 'Status Set Using Legacy Api Call'</textarea>
            <br />
            <a href="#" onclick="setStatus(); return false;">Status Set Using Legacy Api Call</a>
        </div>
        <div>
            <br />
           
        </div>
    </body>
</html>

4
 ;) hola master, si como le dije no creo q sea necesario q el servidor tenga q tener SSL para obtener los datos de usuario facebook, ayer verifique si mi hosting tenia ese certificado a mi plan y no. Unicamente pagando una cuota adicional puede tener ese bneficio pero como bien dijo seria inutil pagar solo por un certificado aunque creo q Facebook puede q lo requiera o no, eso no lo se, solo digo que veo muchas páginas webs con login y register facebook y no tienen este certificado. Aún asi sigo con el mismo problema de que el getUser me devuelve 0 siendo el protocolo  http   :'(

5
Buenos dias Master Mind  :)

Bueno con respecto a mi tema y a tu respuesta que me has brindado amigo, pues si en eso  tienes razón, el problema es que al configurar el url sin el protocolo HTTPS no me devuelve nada o sea el getUser me devuelve 0 , configurando la aplCiacion de esta forma:

URL del sitio:
http://www.emonation.com.ar
App domains:
emonation.com.ar


el tema que también probé con el protocolo https pero se tarda demasiado en cargar y luego salta que no se encontro la página.
También configurado como el anterior pero con el https
¿como puedo saber si el servidor soporta https? discupa mi ignorancia es que no se si mi servidor lo soporta o no o quizas tenga q configurar no se... Saludos Mister

6
Hola nuvamente MasterMind  :D
A ver para ser más espacifico y poder aclarar mejor las cosas comparto aqui el código:

Primeramente tengo alojado en mi servidor la SDK de facebook o sea la carpeta src con los 3 archivos -> base_facebook.php | facebook.php | fb_ca_chain_bundle.crt
este conetindo lo tengo en una carpeta que la nombre Facebook.

Luego en esta misma carpeta tengo el register.php con el siguiente algoritmo que me base de los ejemplos de la sdk de face:

<?php


require_once ('src/facebook.php');

// Create our Application instance (replace this with your appId and secret).
$config = array();
$config['appId'] = '218467891664628';
$config['secret'] = 'xxxxxxxxxxxxxxxxxx'; // oculte mi secret por seguridad :)
$config['fileUpload'] = false;

$facebook = new Facebook($config);

$params = array(
  'scope' => 'read_stream, friends_likes',
  'redirect_uri' => 'https://emonation.com.ar/emonation.com.ar/facebook/register.php'
);

$loginUrl = $facebook->getLoginUrl($params);

$userID = $facebook->getUser();
echo $userID;
?>

<a href="<?php echo $loginUrl;?>">Login with Facebook</a>


En mi aplicación como dije anteriormente tengo configurado de esta forma:

app domains: emonation.com.ar

url site: https://www.emonation.com.ar




7
Hola master Mind muchas gracias por responder  :) , Te comento: yo antes de subir el facebook/register.php a mi servidor configure la url con el dominio .com.ar, por ende tiene mi dominio y no localhost. La aplicacion tiene los datos siguientes: dominio: emonation.com.ar y www.emonation.com.ar.  Al igual que la url le deje como www.emonation.com.ar aún asi con mi dominio configurado dirije a la aplicación pero al momento de reacudar los datos con getUser no lo hace   :-\

8
Hola que tal y gracias por leerme y dedicar su tiempo.
Tengo un problema que no puedo resolver en PHP con la sdk de facebook.
Le comento, tengo una página web con dominio
tengo registro y todo, actualmente quiero agregarle la api de facebook para que los usuarios también puedan registrarse desde su red social sin necesida de crear una. Bien, baje la sdk de facebook y cree dicha aplicación redirigiendola a mi url real.
Hice las primeras pruebas desde local host y ver si me arrojaba datos y efectivamente me arroja datos como la id, name, etc.
Ahora viene lo que me pone asi...   >:( y es q al momento de subirlo a mi host y configurar 'redirect_uri' a mi dirección anterior no me recauda datos de usuario ño. Triste
Sin embargo en locahost si me lo recauda no entiendo por q me hace esto, si además entra sin problemas a la aplicación, espero que puedan entenderme. ¿Cual podría ser el motivo que no puedo recaudar los datos?
POR EJEMPLO: $userID = $facebook->getUser();
el userID devuelve 0, o sea que no puede tener acceso y no se que hacer
Espero ayuda y gracias!  :'(

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".