Importando lista de contatos com OpenInviter

Boa tarde pessoal.

No post de hoje vou colocar um tutorial ensinando a como trabalhar com o OpenInviter. O OpenInviter é um pacote de scripts que nos permite e auxilia a importar uma lista de contatos de maneira relativamente fácil e rápida.

Já pensou disponibilizar para o usuário do seu site/sistema um mecanismo onde ele importa todos os contatos do twitter, orkut, hotmail, gmail, aol, etc. ? Legal né. É isso que veremos a seguir.

Para começarmos a trabalhar com o OpenInviter temos que ir até o site www.openinviter.com/download.php e fazer o download do pacote de scripts. Você perceberá que na página existem pacotes direcionados ao WordPress, Joomla, Drupal, etc. No nosso caso baixaremos o pacote general (o primeiro da lista).

Feito o download, descompacte os arquivos e envie ao servidor.

Antes de testarmos uma importação, vamos ver se nosso servidor está configurado corretamente e apto à executar os scripts com segurança e eficácia. Para isso execute o arquivo postinstall.php (ex: www.seudominio.com/openinviter_dir/postinstall.php).

Esse processo pode demorar alguns minutos mas é importante pois ele fará testes com todos os plugins. (OBS: Pode ser que alguns serviços pouco conhecidos como HushMail, Motortoipa, etc. sejam apontados como NOT OK!, mas os principais como Hotmail, Gmail, Yahoo estarão com o *OK* assinalado).

Ao final da execução será solicitado a exclusão do arquivo postinstall.php. Faça isso!=)

Bom, agora vamos ao que realmente interessa. Vamos importar uma lista de contatos. Para isso, vamos criar um arquivo chamado importar.php na raiz do diretório do OpenInviter.

No meu exemplo, vou utilizar o serviço GMAIL do Google. Fique a vontade para escolher outro se desejar.

Veja:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
require_once('openinviter.php'); //importa a classe
 
$inviter = new OpenInviter(); //instancia a classe openinviter
$inviter->startPlugin('gmail'); //informa o serviço a qual irá se conectar
$inviter->login('seu_nome_de_usuario@gmail.com', 'sua_senha'); //Informa usuario e senha
 
$contatos = $inviter->getMyContacts(); //importa os contatos
$contatos = array_keys($contatos); //pega as chaves do array
sort($contatos); //ordena o array alfabeticamente
 
foreach ($contatos as $contato){
    echo $contato . '<br>'; //imprime
}
 
$inviter->logout(); // efetua logoff
?>

O processo é bem simples. Basta importar a classe do OpenInviter, criar uma instância e startar o plugin desejado(no meu caso o GMAIL). Depois efetuo login no serviço com usuário/senha e executo a função getMyContacts() para importar os contatos. Essa função retorna um array com todos os contatos onde a chave de cada registro é o endereço de email e o valor é a descrição do contato(geralmente o nome).

Como eu quero os endereços de email, eu usei a função array_keys para receber um novo array com os valores sendo as chaves do antigo array. Depois eu uso o sort para ordenar os registros alfabeticamente. Por fim percorro todos os valores e os imprimo na tela. Por questões de segurança é bom efetuar logoff do serviço depois que terminar a importação.

Execute o arquivo e veja toda sua lista de contatos.

Espero ter ajudado.

Abs.

Siga-me no twitter: @rafaelwendel

É formado em Sistemas de Informação, pós-graduado em Sistemas de Banco de Dados e mestre em Educação com foco em Tecnologias Sociocomunitárias. Trabalha como professor de ensino técnico e tecnológico no Instituto Federal de Educação, Ciência e Tecnologia de São Paulo ministrando disciplinas nas áreas de programação, banco de dados, desenvolvimento de projetos e engenharia de software.

Posts relacionados

Comentários

  1. Olá Rafael,
    Eu uso o Openinviter há algum tempo, mas não consegui fazer o serviços do Facebook e do orkut funcionar. No seu funciona? Abs.

    1. Olá Anderson,

      Acabo de testar aqui com o orkut e funcinou perfeitamente. Só que no caso do orkut ele cria um array com as chaves sendo o “uid” do orkut. Portanto para listar o nome de seus amigos, você precisa comentar ou excluir a linha “9” do exemplo do post(onde uso o array_keys).

      O do Facebook também não consegui, assim como no Hotmail. Mas vou dar uma pesquisada e se encontrar algo a respeito eu publico aqui no blog.

      Obrigado pela visita.

      Abs.

  2. Oi Rafael,

    Beleza?
    Quando tento utilizar com o Orkut dá a seguinte falha: Warning: curl_close(): 14 is not a valid cURL handle resource in

    Você já viu esse erro?

    Obrigado!
    Abrs.

    1. Olá Everton,

      Sem ver o seu código não consigo identificar muito bem o que possa estar acontecendo.

      Poste seu código que agente tenta identificar o erro.

      Abs

  3. Olá Rafael, Anderson e Everton..

    Acredito ser de extrema importância essa discussão sobre o OpenInviter, visto que se tem muito pouco dele na net.

    Não sei o que há de errado, somente consegui fazer funcionar com o Yahoo.
    No caso do Facebook, só traz os nomes (e-mails nao vem).
    Outros fundamentais não funcionaram: Orkut, MSN, Youtube, etc.. Se puderem ajudem, me disponho a dar força aqui nessa discussão. Vejam o site onde aplico o OpenInviter (clique na “mãozinha” de um anúncio pra fazer a importação de contatos).
    Grande abraço,
    Leandro Seidel | Gerente de Projetos.

  4. Só esclarecendo o problema: dá erro de usuario/senha nas redes com problema.
    Ja testei, naturalmente, o usuario/senha em cada rede ou provedor, pra ter certeza de que estão corretos.
    Abraço,
    Leandro.

  5. Rafael, a propósito, usando o teu código aí acima.. o erro que encontro é o mesmo que o Everton encontrou:

    Warning: curl_close(): 10 is not a valid cURL handle resource in /home/videclassificados/www/inviter/plugins/_base.php on line 482

  6. Olá Leandro,

    Realmente tem muito pouco conteúdo a respeito do OpenInviter na internet.

    Com relação ao orkut, verifiquei que ele só funciona quando você coloca seu usuario/email do google.

    Já os outros serviços que nao funcionam. Eu penso que como é um “agente estranho” que está tentando acessar informações restritas(como lista de email) eles devem ter mecanismos de segurança que dificultam esse processo.

    Bom, pelo menos é isso que penso.

    Estou pesquisando na internet. Se achar algo relevante eu posto aqui.

    Abs

  7. Olá Rafael, tem como você me enviar o pacote e algum exemplo junto ;), porque não estou conseguindo baixá-lo no site do openinviter oficial, está dando erro no download, tentei em vários browsers e nada, tem como você me enviar, por favor.

  8. Olá Rafael, estou com o mesmo problema do Elcio… não consigo baixar o OpenInviter do site, ele pede cadastro mas não está funcionando a tela… e todas as outras telas do site deles tb estão com problemas… tem como vc enviar o openinviter por email ou disponibilizar um link para nós?

  9. Ola caro Rafael, estou com o meu site quase pronto, ele usa a biblioteca do open inviter integrado ao codeigneter para fazer a importacao de contatos, mas somente o gmail funciona, o restante nao, o que sera que pode ser bro??

    1. Olá Claudeir,

      A maioria dos serviços hoje em dia infelizmente reconhecem o OpenInviter como um programa malicioso que está tentando acessar informações privadas de um determinado usuário. Por isso ele tem sido tão rejeitado.

      Não há muito o que se pode fazer.

      Obrigado pela visita.

      Abs

    1. Olá Victor,

      A maioria dos serviços hoje em dia infelizmente reconhecem o OpenInviter como um programa malicioso que está tentando acessar informações privadas de um determinado usuário. Por isso ele tem sido tão rejeitado.

      Não há muito o que se pode fazer.

      Abs

  10. Bom dia Rafael Wendel e demais colegas, vocês sabem alguma outra ferramenta que possui função parecida com a do OpenInviter? Estou precisando muito para um projeto.

    1. Olá Tadeu,

      Infelizmente não conheço outra classe ou API que faça essa tarefa. Acho que isso é devido às distintas formas de implementação de uma plataforma (serviço) para outras. E também porque serviços como Facebook e Twitter exigem que você tenha uma chave para poder acessar a API. Openinviter não é mais indicado para essa tarefa e creio que não exista nada parecido, pelo menos em PHP.

      Abs!

  11. Pessoal, eu trabalho para o http://cloudsponge.com, e lá temos tanto uma API (em Java, Ruby, PHP, etc) quanto um widget HTML para fazer imports de contatos de Yahoo, Gmail, MSN/Outlook/Hotmail, AOL e Plaxo.

    Existe um API em testes internos para suporte a UOL, BOL e Terra.

    O serviço é gratuito para testes de desenvolvimento, e se seu uso não for comercial, é possível requisitar um pedido de isenção (que será analisado).

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *