quinta-feira, 24 de setembro de 2015

O Facebook está em baixo

Aquele momento em que queremos matar uns minutos a ver o lixo conteúdo fantástico que os nossos amigos andam a partilhar, e o Facebook decide explodir..

sexta-feira, 24 de julho de 2015

Como estilizar o código no Blogger

A biblioteca que estou a utilizar é a http://alexgorbatchev.com/SyntaxHighlighter/ .

Para utilizar esta biblioteca podemos inserir links directos do site do criador.

Antes do
</head>
colocar:


Antes do
</body>
colocar os brushes necessários:









Depois é só ter o cuidado nos posts onde é referido código, em colocar um elemento HTML (editando o HTML do post) que identifique a linguagem utilizada. Exemplo:
<pre class="brush:xml">Código</pre>
E está feito.

quinta-feira, 23 de julho de 2015

A sandbox do Paypal e os Payouts e o mítico INSUFFICIENT_FUNDS

Para aqueles que vão implementar algo que utiliza a API do Paypal e como bons developers vão testar primeiro na sandbox antes de lançar o projeto, atenção a um pequeno detalhe com a conta de teste, as transações têm que ser feitas na moeda da conta. Se tiver em dólares o payout tem que ser feito em USD.

Se se esquecerem deste pequeno detalhe a API vai retornar um erro super explícito INSUFFICIENT_FUNDS.

Continuação de bom desenvolvimento.

quarta-feira, 17 de junho de 2015

Scrapping de sites - em nodejs

Normalmente quando preciso de fazer scrapping a algum site utilizo o módulo request juntamente com o cheerio, algo como:

var request = require('request');
var cheerio = require('cheerio');

request({ uri: "https://www.google.pt" }, function(error, response, body) {

   if(response && response.statusCode && response.statusCode < 300) {

      var $ = cheerio.load(body);
      var el = $('#gbw').find('a.gb_ga');

      console.log(el.attr('title'));

   }//if

});


No entanto alguns sites estão por trás de proxies que protegem contra coisas chatas como ataques de DOS, e outras coisas, e acabam por bloquear este tipo de pedidos.
A forma que encontrei para conseguir evitar ser bloqueado é utilizar um headless browser, normalmente utilizado para testes automáticos ao UI, e assim ultrapassar essas protecções chatas.

Existem alguns módulos para nodejs no entanto alguns semi vivos, outros com problemas estranhos, o que estou a utilizar sem grandes problemas é o phantom, um wrapper para o phantomjs. Para utilizar é necessário ter o phantomjs instalado:

sudo npm install phantomjs -g


Exemplo de utilização:

var phantom = require('phantom');
var ph = false;

phantom.create(function (obj) {

   ph.createPage(function (page) {
      page.open("https://www.google.pt", function(status) {
         if(status == "success") {
            page.evaluate(function () {
               return document.getElementsByTagName('html')[0].innerHTML;
            }, function(result) {
               var $ = cheerio.load(result);
               var el = $('#gbw').find('a.gb_ga');
               console.log(el.attr('title'));
            });
         }//if
   });

});


Happy scrapping.


quinta-feira, 11 de junho de 2015

Obter o PageID (do Facebook) através do URL de uma página - em nodejs

Andava eu a tentar obter os likes de páginas do Facebook mas a única informação que tenho disponível é o URL das mesmas, poderia fazer algo mais chato e complexo como usar a API para obter as páginas do utilizador (autenticar, obter o token de acesso com permissões para obter as páginas, listar as páginas para o utilizador escolher qual quer) mas não faz sentido para o site em questão andar com esse trabalho.

Depois de alguma pesquisa descobri que é possível obter o ID do objecto através da API, aqui fica o snippet em nodejs (a lógica aplica-se a outras linguagens):

FB.api('/', {
 "id": url
}, function(res) {
 
 var pageId = res.id || res.og_object.id;
 
 if(!pageId) return next({message: 'Ups, algo correu mal'}, 0);
 
 FB.api(pageId, { fields: ['likes'] }, function(res) {
  
  if(!res || res.error || !res.likes) {
   return next(res.error, 0);
  }
  
  return next(null, res.likes);
 });
});

A biblioteca que estou a utilizar é: https://github.com/Thuzi/facebook-node-sdk/

Se alguém tiver uma solução mais interessante ou elegante coloque aí nos comments.

quarta-feira, 10 de junho de 2015

Blogs España Monetiza tu blog

El Directorio de Blogs España aspira a ser la lista más completa de los blogs españoles.


Beneficios de hacer parte de la Red Anuncios BES


  • Monetiza tu blog


Ahora usted puede hacer más dinero con su blog. Cuando aderires a la Red Anuncios BES será añadido una barra a su blog, que contiene un banner que genera ingresos teniendo en cuenta el número de visitas. Cuanto mayor sea el número de lectores de su blog, más dinero ganará.