Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Recommended Posts

Olá pessoal, beleza?

 

Estou criando um site de entretenimento, e gostaria de fazer algo para aumentar os likes da página no facebook, desse site.

 

Pensei em criar flutuante com o botão de curtir, mas ficaria chato, pois uma vez que o usuário já tenha curtido, a div sempre ficará enchendo a tela do cara.

 

Encontrei um site que faz essa função de forma perfeita, da uma olhada lá por favor: http://br.vonvon.me/quiz/534

 

Não sei como ele ler que a pessoa esta logado no facebook ou não. Acho que é pelo aplicativo, quando entra com o facebook para testar.

 

Então... quando curti a página, essa barra no topo não aparece mais, pois já curtiu, se descurtir, ela volta a aparecer.

 

Eu já tenho uma aplicativo que puxa as informações do usuario: http://testesdivertidos.com

só não sei como fazer essa questão da DIV que contem o botão do like sumir, após curtir.

 

Toda ajuda é valida!

Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Wellington,

Você pode fazer isso de algumas maneiras e vou deixar duas:

  • Você pode salvar um cache eterno, se ele clicar em curtir, a aba fecha e o cache segura ela fechada pelo resto da vida.
  • Você pode atrelar a curtida a conta do facebook, mas o problema é que se ele não estiver logado, o botão vai aparecer.

A do cache resolve, não?

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande Henrique, beleza?

 

Bom, acho que para esse meu caso, a segunda opção é a melhor, pois se o usuário não estiver logado no facebook, nada poderá fazer dentro do site. Os testes dependem exclusivamente dos dados do usuario para poder rodar.

 

Então, essa parada de aparecer caso esteja deslogado é uma boa.

 

Mas vem a grande questão, como fazer? rsrs

 

Manjo pouquíssimo de programação. teria alguma forma mastigada ai pra passar?

 

Abraço cara!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Wellington, faz tempo que não te via por esses lados do fórum.

Essa questão fica um pouco fora de HTML/CSS, mas vou tentar te ajudar da melhor forma possível. Se você precisa saber se o usuário está logado ou não, você primeiro vai precisar estudar e entender a API do Facebook SDK PHP. Ela vai ser a responsável por identificar se um usuário X está logado no facebook.

Como não tenho tanto tempo agora (estou de saída aqui), vou deixar um post explicando como funciona o SDK e como configurar ele na sua página pra identificar se um usuário está logado.

Veja aqui: http://stackoverflow.com/questions/25201096/check-if-facebook-user-is-logged-in-to-app-with-php-sdk

 

Se não conseguir implementar, nos avise que tentaremos solucionar a sua questão.

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehehe, estou sendo de olho nas coisas, mas prefiro deixar as respostas para os profissionais, tipo você! :D

 

Bom, vou dar uma estudada nesse material. Eu já tenho uma aplicação no meu site, que puxa nome do usuário e foto, e acho que ela ver se o cara ta logado no facebook também!

 

Vou vou estudar o material que me passou e retorno aqui!

 

Vlw Henrique! abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Henrique, caso possa me ajudar, por favor!

 

Eu dei uma olhada boa nesse material que me mandou, e notei que é mais ou menos o mesmo que já tenho em minha aplicação. Minha aplicação esta rodando legal http://testesdivertidos.com

 

Acho que só preciso saber como puxar a função que identifica se o usuario curtiu ou não a página, para exibir ou não o botão para ele, sabe me informar isso?

 

Seria:

Logado e curtiu a página, botão não aparece.

Logado e NÃO curtiu a página, botão aparece.

 

Caso precise dar uma olhada, aqui está minha ligação:

<script>
    // Load the SDK asynchronously
    (function(d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s); js.id = id;
        js.src = "//connect.facebook.net/pt_BR/sdk.js#xfbml=1&version=v2.6&appId=1065386780209103";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));

  // Isto é chamado com os resultados a partir de FB.getLoginStatus ().
  var urlResolved;
  var pageResolved;
  function statusChangeCallback(response) {
    console.log('statusChangeCallback');
    console.log(response);
    // O objeto de resposta é retornado com um campo de status que permite que o
    // App saber o status de login atual da pessoa.
    // A documentação completa sobre o objeto de resposta pode ser encontrada na documentação
    // Para FB.getLoginStatus ().
//        document.getElementById('status').innerHTML = '<?php //echo '<img src='.$values2[0].'>'; ?>//';
//        document.getElementById('shareBtn').style.display = "none";
        if (response.status === 'connected') {
            // Logado em sua aplicação e Facebook.
        //        testAPI(response.authResponse.accessToken);
            console.log('Welcome!  Fetching your information.... ');
            FB.api('/me?fields=birthday,email,name,age_range&access_token=' + response.authResponse.accessToken, function(apiResponse) {
                console.log('Successful login for: ' + apiResponse.name);
                document.getElementById('loginBtn').innerHTML = '';
                urlResolved = '<?php echo $img1; ?>'+apiResponse.id+'&name='+apiResponse.name+'<?php echo $img2; ?>';
                pageResolved = '<?php echo $page1; ?>'+apiResponse.id+'<?php echo $page2; ?>'+'/'+apiResponse.name.replace(' ','-')+'<?php echo $page3; ?>';

        //            console.log(pageResolved);
//                document.getElementById('status').innerHTML = '<img src="'+urlResolved+'">';
//                document.getElementById('shareBtn').style.display = "initial";
                document.getElementById('testeBtn').style.display = "initial";
            });
        } else {
            // A pessoa não está logado no Facebook, por isso não temos certeza se
            // Eles são registrados para este aplicativo ou não.
            document.getElementById('status').innerHTML = '<?php echo '<img src='.$values2[0].'>'; ?>';
            document.getElementById('shareBtn').style.display = "none";
            document.getElementById('testeBtn').style.display = "none";
        }
  }


  // This function is called when someone finishes with the Login
  // Button.  See the onlogin handler attached to it in the sample
  // code below.
  window.fbAsyncInit = function() {
      FB.init({
        appId       : 'xxxxxxxx',
        status      : false,
        cookie      : true,  // enable cookies to allow the server to access the session
        xfbml       : true,  // parse social plugins on this page
        version     : 'v2.6' // use version 2.2
      });

      FB.Event.subscribe('auth.authResponseChange', function(response) {
          statusChangeCallback(response);
      });
  };
</script>

Lembrando que eu peguei o login padrão lá do devloper do facebook, e um amigo me ajudou com as funções.

 

Mas ele não estou podendo contatar ele no momento.

 

Obrigado desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Wellington,

Desculpa a demora, mas vamos lá!

Você tem essa função no final do código:

 window.fbAsyncInit = function() {
      FB.init({
        appId       : 'xxxxxxxx',
        status      : false,
        cookie      : true,  // enable cookies to allow the server to access the session
        xfbml       : true,  // parse social plugins on this page
        version     : 'v2.6' // use version 2.2
      });

      FB.Event.subscribe('auth.authResponseChange', function(response) {
          statusChangeCallback(response);
      });
  };

Altere o STATUS para TRUE e depois vamos programar um pouquinho pra saber se o usuário curtiu ou não sua página.

Segue o código JS:

$(document).ready(function() {
   FB.login(function(response) {
      if ( response.session ) {
         var user_id = response.session.uid;
         var page_id = "ID da sua página do face";
         var query = "SELECT uid FROM page_fan WHERE page_id="+page_id+"and uid="+user_id;
         var exec_query = FB.Data.query(query);
         
         exec_query.wait(function(rows) {
            if ( rows.length == 1 && rows[0].uid == user_id ) {
               // Aqui o cara já curtiu sua página.
               $('#div_do_like').hide();
            } else {
               // Aqui o cara não curtiu sua página.
               $('#div_do_like').show();
            }
         });
      } else {
         // Aqui diz que o usuário não está logado no facebook, então você pode deixar o botão de like aparecendo, assim pede pra ele se conectar.
      }
   });
});

Acho que isso deve funcionar ahushuahusahusahus.

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá parceiro, obrigado mais uma vez!

 

Fiz o que tu falou, mas não rolou o efeito de esconder a div, caso o cada curta, veja por favor se fiz correto

 

A função que faz a ligação ao facebook, está dentro do meu single.php, tem algum problema?

Troquei o FALSE, por TRUE: http://puu.sh/pTxRE/41617fa475.png

 

No meu header eu coloquei:

<head>

<script type="text/javascript">
    $(document).ready(function() {
       FB.login(function(response) {
          if ( response.session ) {
             var user_id = response.session.uid;
             var page_id = "1107649722591782";
             var query = "SELECT uid FROM page_fan WHERE page_id="+page_id+"and uid="+user_id;
             var exec_query = FB.Data.query(query);
             
             exec_query.wait(function(rows) {
                if ( rows.length == 1 && rows[0].uid == user_id ) {
                   // Aqui o cara já curtiu sua página.
                   $('#div_do_like').hide();
                } else {
                   // Aqui o cara não curtiu sua página.
                   $('#div_do_like').show();
                }
             });
          } else {
             // Aqui diz que o usuário não está logado no facebook, então você pode deixar o botão de like aparecendo, assim pede pra ele se conectar.
          }
       });
    });
</script>

</head>

<body>
	<style type="text/css">
		#div_do_like{width: 100%; min-height: 30px; background: #3B5998; line-height: 30px;}
		.content-topo{margin: auto; max-width: 1000px;}
		.content-topo-left{float: left; width: 50%; text-align: right; color: #fff; font-weight: bolder; font-size: 15px;}
		.content-topo-right{float: right; width: 50%; height: 25px;}		
	</style>

	<div id="div_do_like">
		<div class="content-topo">
			<div class="content-topo-left">
				Nós gostamos de você. Curta a gente de volta!
			</div>
			<div class="content-topo-right">
				<div class="fb-like" data-href="https://facebook.com/testesdivertidos" data-layout="button_count" data-action="like" data-show-faces="false" data-share="false"></div>
		    </div>
		</div>
	</div>
</body>

Mas não consegui fazer rodar.

 

A intenção ai no código, é após curtir, esconder toda essa div azul que é a #div_do_like

da uma olhada: http://testesdivertidos.com

 

Muito obrigado henrique! Abraço!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Wellington, beleza?

Dei uma pesquisada em tópicos semelhantes e encontrei as seguintes possíveis soluções:

Creio que o segundo link consiga solucionar grande parte do seu problema.

Lembre-se de fazer o seguinte... Se o seu site está em wordpress, chame primeiro a função da API abaixo da chamada do jQuery e então chame a função condicional. Ex.:

   <script src="JQUERY"></script>
   <script src="FACEBOOK API"></script>
   <script src="FUNÇÃO"></script>
</body>
</html>

Eu não entendo como foi organizado o seu projeto, então fica difícil tentar uma solução direta.

Abraços brother!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Henrique, tranquilo por aqui, na luta!

 

Obrigado por sua boa vontade em ajudar, parceiro!

 

Vou dar uma estudada na função e retorno!

 

Abraço!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Henrique, tranquilo por aqui, na luta!

Obrigado por sua boa vontade em ajudar, parceiro!

Vou dar uma estudada na função e retorno!

Abraço!!!!

Fa Wellington, belezA!! Voce conseguiu resolver essa bucha?? Me ajude, eu preciso disso tambem em meu wordpress!! Valeu!!

  • 0

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.

      Estou com uma pequena dúvida se é possível ser realizado.

      Preciso passar 2 IDs para o Sistema executar a função, estou utilizando desta forma e gostaria de saber como faço via JS para passar os parâmetro que preciso.

      Observação:
      Dentro da TABELA utilizei 2 Forms, para passar os IDS que preciso, funcionou conforme código abaixo.
      <div class="card-body"> <table id="tab_clie" class="table table-bordered table-hover"> <thead> <tr> <th style="text-align:center; width:10%;">Pedido Nº</th> <th style="text-align:center; width:10%;">Data Pedido</th> <th style="text-align:center; width:32%;">Fornecedor</th> <th style="text-align:center; width:10%;">Status</th> <th style="text-align:center; width:5%;">Ação</th> </tr> </thead> <tbody> <?php foreach ($results as $r) { $dta_ped = date(('d/m/Y'), strtotime($r->dataPedido)); switch ($r->pd_status) { case '1': $status = '&nbsp;&nbsp;Aberto&nbsp;&nbsp;'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#000000'; //Cor: Preta break; case '2': $status = 'Atendido Total'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#086108'; //Cor: Verde break; case '3': $status = 'Atendido Parcial'; $txt = '#000000'; //Cor: Branco $cor = '#FEA118'; //Cor: Amarelo break; default: $status = 'Cancelado'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#D20101'; //Cor: Vermelho break; } echo '<tr>'; echo '<td width="10%" height="10" style="text-align:center;">'.$r->pd_numero.'</td>'; echo '<td width="10%" height="10" style="text-align:center;">'.$dta_ped.'</td>'; echo '<td width="32%" height="10" style="text-align:left;">'.$r->nome.'</td>'; echo '<td width="10%" height="10" style="text-align:left;"><span class="badge" style="color:'.$txt.'; background-color:'.$cor.'; border-color:'.$cor.'">'.$status.'</span></td>'; echo '<td width="5%" style="text-align:center;">'; ?> <div class="row"> <?php if($this->permission->checkPermission($this->session->userdata('permissao'), 'vPedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/visualizar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-warning" title="Visualizar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-search icon-white"></i></button> </form> <?php } if($this->permission->checkPermission($this->session->userdata('permissao'), 'ePedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/editar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-primary" title="Editar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-edit icon-white"></i></button> </form> <?php } ?> </div> <?php echo '</td>'; echo '</tr>'; } ?> </tbody> </table> </div>
      Grato,

      Cesar.
    • Por belann
      Olá!
       
      Estou usando o editor quill em uma página html, sem fazer a instalação com npm, mas usando as api´s via internet com http, no entanto não consigo fazer a tecla enter funcionar para mudança de linha, tentei essa configuração abaixo, mas não funcionou.
       
      modules: {       syntax: true,       toolbar: '#toolbar-container',       keyboard: {         bindings: {           enter: {             key: 13,             handler: function(range, context) {                       quill.formatLine(range.index, range.length, { 'align': '' });             }           }  
       
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de poder tirar uma dúvida com os amigos.
       
      Como faço uma função para Comparar a Data Digitada pelo o Usuário com a Data Atual ?

      Data Digitada:  01/09/2024
       
      Exemplo:
      25/09/2024 é menor que DATA Atual  ====> mensagem: informe uma data válida.
      25/09/2024 é igual DATA Atual ===> o sistema libera os INPUT's.
       
      Como faço uma comparação com a Data Atual, para não Deixar Gravar Data retroativa a data Atual.
       
      Grato,
       
      Cesar
    • Por Rafael Castelhano
      Olá, quero preencher um dict dinamicamente onde a chave é uma string multidimencional no dict, ex:
      var dict = {} var path = 'a.b.c' dict[path] = 55 // isso faz dict ficar desta forma {'a.b.c': 55} // mais quero que fique assim {a: {b: {c: 55}}} Como consigo alterar desta forma? 
    • Por violin101
      Caros amigos, saudações.
       
      Estou com um problema de cálculo que não estou conseguindo resolver.
       
      Tenho uma rotina em Javascript que faz o seguinte cálculo qtde x vrUnit = total.
       
      qtde   x  vrUnit    =    total
      1,23   x  1,00       =    1,23    << até aqui tudo bem.
       
      o problema seria fazer o arredondamento para cima para impedir de fazer este cálculo:
      0,01 x 0,01 = 0,0001
       
      para digitar o valor estou utilizando esta função:
       
      /*Esta função quando o usuário digitar o valor aparece * 1,23 */ function formataDigitacao(i) { //Adiciona os dados para a másrcara var decimais = 2; var separador_milhar = '.'; var separador_decimal = ','; var decimais_ele = Math.pow(10, decimais); var thousand_separator = '$1'+separador_milhar; var v = i.value.replace(/\D/g,''); v = (v/decimais_ele).toFixed(decimais) + ''; var splits = v.split("."); var p_parte = splits[0].toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, thousand_separator); (typeof splits[1] === "undefined") ? i.value = p_parte : i.value = p_parte+separador_decimal+splits[1]; } /*Esta função faz a multiplicação entre Valor Unitário X Quantidade *faz a multiplicação correta */ function calcProd(){ //Obter valor digitado do produto var prod_qtde = document.getElementById("qtde").value; //Remover ponto e trocar a virgula por ponto while (prod_qtde.indexOf(".") >= 0) { prod_qtde = prod_qtde.replace(".", ""); } prod_qtde = prod_qtde.replace(",","."); //Obter valor digitado do produto var valor_unit = document.getElementById("vlrunit").value; //Remover ponto e trocar a virgula por ponto while (valor_unit.indexOf(".") >= 0) { valor_unit = valor_unit.replace(".", ""); } valor_unit = valor_unit.replace(",","."); //Calcula o Valor do Desconto if (valor_unit > 0 && prod_qtde > 0) { calc_total_produto = (parseFloat(valor_unit) * parseFloat(prod_qtde)); var numero = calc_total_produto.toFixed(2).split('.'); //<<== aqui faço o arredondamento das casas decimais de 1,234 p/ 1,23 numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.'); document.getElementById("vlrtotal").value = numero.join(','); } else { if (valor_unit > 0) { document.getElementById("vlrtotal").value = document.getElementById("vlrunit").value; } else { document.getElementById("vlrtotal").value = "0,00"; } } } Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.