{"id":28218,"date":"2021-06-04T11:27:00","date_gmt":"2021-06-04T08:27:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28218"},"modified":"2021-10-18T04:04:47","modified_gmt":"2021-10-18T01:04:47","slug":"criar-tinyurl-usando-api-bitly-em-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/criar-tinyurl-usando-api-bitly-em-php\/","title":{"rendered":"Criar TinyURL usando API Bitly em PHP"},"content":{"rendered":"<p>Voc\u00ea est\u00e1 procurando criar links curtos para URLs longos? Links curtos ou TinyURL s\u00e3o f\u00e1ceis de compartilhar por e-mail e nas redes sociais. Neste artigo, estudamos como criar um link curto usando a API Bitly e PHP.<\/p>\n<p><a href=\"https:\/\/bitly.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Bitly<\/a> \u00e9 um encurtador de URL e plataforma de gerenciamento de link. Eles nos permitem criar links curtos e rastrear a an\u00e1lise de link individual.<\/p>\n<p>Sites populares como YouTube, Facebook, Twitter fornecem uma vers\u00e3o curta de um URL longo. Quando executamos o URL curto no navegador, ele redireciona automaticamente para o URL principal.<\/p>\n<p>Dito isso, vamos ver como criar links curtos usando a API Bitly em PHP.<\/p>\n<h3>Come\u00e7ando<\/h3>\n<p>Para come\u00e7ar, primeiro voc\u00ea precisa ter uma conta no <a href=\"https:\/\/bitly.com\/a\/sign_in\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Bitly<\/a>.<\/p>\n<p>Como vamos usar a API Bitly, precisamos gerar um token de acesso que \u00e9 obrigat\u00f3rio para interagir com as APIs. Para gerar o token de acesso, v\u00e1 para a p\u00e1gina Editar Perfil. Clique no menu de configura\u00e7\u00f5es superior direito e selecione seu nome de usu\u00e1rio \/ e-mail.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20351-6081e337ee4ea.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20351-6081e337ee4ea.png\" alt=\"Criar TinyURL usando API Bitly em PHP\" ><\/a><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20351-6081e33848c8f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20351-6081e33848c8f.png\" alt=\"Criar TinyURL usando API Bitly em PHP\" ><\/a><\/p>\n<p>Na pr\u00f3xima p\u00e1gina, voc\u00ea ver\u00e1 a op\u00e7\u00e3o para &#8216;Token de acesso gen\u00e9rico&#8217;. Clique nele e copie o seu token de acesso que precisamos em um momento.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20351-6081e3389690c.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20351-6081e3389690c.png\" alt=\"Criar TinyURL usando API Bitly em PHP\" ><\/a><\/p>\n<p>Para criar um link curto com o Bitly, ele precisa enviar a solicita\u00e7\u00e3o HTTP POST para o endpoint da API. Vou escrever um c\u00f3digo para Guzzle e cURL para enviar solicita\u00e7\u00f5es HTTP e receber respostas HTTP.<\/p>\n<h3>Enviar solicita\u00e7\u00e3o HTTP usando Guzzle<\/h3>\n<p>Para enviar solicita\u00e7\u00f5es HTTP, podemos usar Guzzle ou cURL. Mas, eu recomendo usar o Guzzle, pois n\u00e3o requer uma extens\u00e3o cURL habilitada em seu servidor. Al\u00e9m disso, o Guzzle fornece um c\u00f3digo limpo em compara\u00e7\u00e3o com cURL.<\/p>\n<p>Instale a biblioteca Guzzle em seu projeto usando o comando:<\/p>\n<pre><code>composer require guzzlehttp\/guzzle<\/code><\/pre>\n<p>Ap\u00f3s a instala\u00e7\u00e3o do pacote, escreva o c\u00f3digo abaixo em seu arquivo PHP que gera TinyURL para voc\u00ea.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\ntry {\n\u00a0\u00a0\u00a0\u00a0$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'https:\/\/api-ssl.bitly.com\/',\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$response = $client-&gt;request('POST', 'v4\/bitlinks', [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'json' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'long_url' =&gt; 'YOUR_LONG_URL',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'headers' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'Authorization' =&gt; 'Bearer YOUR_ACCESS_TOKEN'\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'verify' =&gt; false,\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if(in_array($response-&gt;getStatusCode(), [200, 201])) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$body = $response-&gt;getBody();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$arr_body = json_decode($body);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo $arr_body-&gt;link;\n\u00a0\u00a0\u00a0\u00a0}\n} catch(Exception $e) {\n\u00a0\u00a0\u00a0\u00a0echo $e-&gt;getMessage();\n}<\/code><\/pre>\n<p>Certifique-se de substituir os marcadores YOUR_LONG_URL e YOUR_ACCESS_TOKEN pelos valores reais. Este c\u00f3digo d\u00e1 uma chamada para o <code>https:\/\/api-ssl.bitly.com\/<\/code>com o ponto de extremidade <code>v4\/bitlinks<\/code>. Em resposta, voc\u00ea receber\u00e1 seu URL curto.<\/p>\n<h3>Enviar solicita\u00e7\u00e3o HTTP usando cURL<\/h3>\n<p>Estou recomendando o Guzzle para solicita\u00e7\u00f5es HTTP. Mesmo assim, se algu\u00e9m quiser usar cURL, poder\u00e1 usar o c\u00f3digo abaixo. Na verdade, a escolha \u00e9 do usu\u00e1rio. Se voc\u00ea j\u00e1 est\u00e1 usando o cURL em seu aplicativo, obviamente voc\u00ea vai para o cURL. Ambos os m\u00e9todos est\u00e3o dando o mesmo resultado. Portanto, decida qualquer m\u00e9todo adequado para voc\u00ea.<\/p>\n<pre><code>&lt;?php\n$url = 'https:\/\/api-ssl.bitly.com\/v4\/bitlinks';\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['long_url' =&gt; 'YOUR_LONG_URL']));\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n\u00a0\u00a0\u00a0\u00a0\"Authorization: Bearer YOUR_ACCESS_TOKEN\",\n\u00a0\u00a0\u00a0\u00a0\"Content-Type: application\/json\"\n]);\n\u00a0\u00a0\n$arr_result = json_decode(curl_exec($ch));\necho $arr_result-&gt;link;<\/code><\/pre>\n<p>Espero que voc\u00ea entenda como criar TinyURL usando a API Bitly em PHP. Eu gostaria de ouvir seus pensamentos e sugest\u00f5es na se\u00e7\u00e3o de coment\u00e1rios abaixo.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/speech-to-text-usando-amazon-transcribe-em-php\/\" title=\"Speech-To-Text usando Amazon Transcribe em PHP\">Speech-To-Text usando Amazon Transcribe em PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-integrar-a-api-do-planilhas-google-com-php\/\" title=\"Como integrar a API do Planilhas Google com PHP\">Como integrar a API do Planilhas Google com PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/text-to-speech-usando-amazon-polly-em-php\/\" title=\"Text-To-Speech usando Amazon Polly em PHP\">Text-To-Speech usando Amazon Polly em PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neste artigo, mostrarei como criar um TinyURL usando o popular servi\u00e7o Bitly. TinyURLs s\u00e3o f\u00e1ceis de compartilhar nas redes sociais, e-mail,<\/p>\n","protected":false},"author":1,"featured_media":21660,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[278],"tags":[848],"class_list":["post-28218","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-9","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/28218","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=28218"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/28218\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/21660"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=28218"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=28218"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=28218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}