Ir para conteúdo

POWERED BY:

Arquivado

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

Erilton

[Resolvido] API Encurtador Google

Recommended Posts

Olá pessoal!

 

Estou montando um sisteminha de notícias, e para facilitar na divulgação do link, principalmente no twitter, gostaria de usar o encurtador do google, um dos mais rápidos.

 

Pesquisei um pouco e descobri que eles lançaram agora no dia 11/01 uma API pra isso.

Leiam mais sobre: http://code.google.com/intl/pt-BR/apis/urlshortener/v1/getting_started.html#auth

 

Como sou iniciante em PHP, não sei como faço isso.

 

Gravar a notícia está Ok.

Ela é exibida através do GET, ex: localhost/noticia.php?codigo=<ID DA NOTICIA>

 

O que eu gostaria:

Quando a pessoa estiver lendo a notícia, no final da página, gostaria de colocar o link já com o encurtador para o visitante divulgar nas redes sociais e toda essa configuração fosse automática, a API entender o endereço (http://localhost/noticia.php?codigo= + ID) e retornar o link http://goo.gl/<código>

 

Não sei por onde começar para fazer isso automaticamente através da minha página noticia.php.

 

Alguém pode me dar uma luz?

Não estou pedindo o código pronto, apenas de como devo usar as referencias da API.

 

 

Desde já agradeço ao time.

 

 

Abraços,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhando agora, não é difícil de você usar a API.

 

Primeiro de tudo você deve saber fazer requisições POST sem formulários e, para isso vai precisar de cURL ou usar fopen() (e cia) em conjunto de Stream Contexts.

 

Ambas tem suas limitações. cURL, além de ser um poquinho mais complicada, requer que a dita biblioteca esteja habilitado no servidor. Logo, a maioria dos servidores gratuitos não poderiam ser usados.

 

Em contrapartida, usando Stream Contexts, apesar de mais fácil a sintaxe, tem duas limitações: A instalação do PHP deve ter sido compilada com OpenSSL, caso contrário não haverá suporte ao transporte via wrapper HTTPS://.

 

Aqui, no meu Windows XP bastou descomentar a linha extension=php_openssl.dll no PHP.INI e reiniciar o Apache.

 

A segunda limitação é quanto a própria versão do PHP. O exemplo abaixo, que usa file_get_contents() só passou a ter suporte aos Stream Contexts na versão 5.

 

Considerações feitas, veja:

 

<?php

/**
* Definimos aquilo que a API pede:
* - Requisição via POST
* - Informar que estamos enviando como argumento uma string JSON
* - A dita string JSON
*/
$opts = array(
 'http' => array(
   'method'  => 'POST',
   'header'  => 'Content-Type: application/json',
   'content' => '{"longUrl": "http://www.google.com/"}'
 )
);

/**
* O resultado de file_get_contents() é passado para json_decode()
* assim podemos trabalhar com objetos da stdClass
*/
$result = json_decode( 
             file_get_contents( 'https://www.googleapis.com/urlshortener/v1/url',
                 FALSE, stream_context_create( $opts ) ) );

var_dump( $result -> id );

 

Peço, porém, que não apenas copie o código, mas que tente entendê-lo, como parte do seu aprendizado ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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