Estou tentando colocar um link de compartilhamento do Twitter em um e-mail. Como estou em um e-mail, não posso confiar em JavaScript e preciso usar o botão "Crie seu próprio" Tweet.
Por exemplo, compartilhando um link para o Google:
<a href="http://www.twitter.com/share?url=http://www.google.com/>Tweet</a>
Isso funciona bem. O problema que estou tendo é quando o URL tem uma string de consulta.
<a href="http://www.twitter.com/share?url=http://mysite.org/foo.htm?bar=123&baz=456">Tweet</a>
URLs com strings de consulta confundem o serviço de encurtamento de URL do Twitter, t.co. Tentei a codificação de URL de várias maneiras e não consigo fazer nada funcionar. O mais próximo que cheguei foi fazendo isso.
<a href="http://www.twitter.com/share?url=http://mysite.org/foo.htm%3Fbar%3D123%26baz%3D456">Tweet</a>
Aqui, codifiquei apenas a string de consulta. Quando eu faço isso, t.co encurta o URL com sucesso, mas ao seguir o link encurtado, ele leva você para o URL codificado. Eu vejo http://mysite.org/foo.htm%3Fbar%3D123%26baz%3D456
na barra de endereço e recebo o seguinte erro no navegador
Não encontrado
O URL solicitado /foo.htm?bar=123&baz=456 não foi encontrado neste servidor.
Não sei como resolver esse problema.
Editar: Re: onteria_
Tentei codificar o URL inteiro. Quando eu faço isso, nenhuma URL aparece no Tweet.
fonte
http://
baixo para cimaRespostas:
Isso vai funcionar para você
Aqui está um exemplo ao vivo sobre isso
http://twitter.com/share?text=Im Compartilhando no Twitter & url = https: //stackoverflow.com/users/2943186/youssef-subehi&hashtags=stackoverflow,example,youssefusf
fonte
Isso pode ser resolvido usando em
https://twitter.com/intent/tweet
vez dehttp://www.twitter.com/share
. Usando aintent/tweet
função, você simplesmente codifica a URL toda a sua URL e funciona perfeitamente.https://dev.twitter.com/web/intents
fonte
https://twitter.com/intent/tweet?text={text_to_share}
funciona perfeitamente em todas as plataformas. Estive pesquisando alto e baixo para isso .. Obrigado!Use a intenção da web do tweet, este é o link simples:
mais variáveis em https://dev.twitter.com/web/tweet-button/web-intent
fonte
Não fica mais simples do que isso:
fonte
Você pode usar estas funções:
fonte
var url = ...
) ao gerar o e-mail.Você deve alterar & para% 26 na string de consulta do seu url
Olhe para isso: https://dev.twitter.com/discussions/8616
fonte
Eu faço referência a todos os métodos.
Codificar a consulta duas vezes é a solução mais rápida.
fonte
Você não precisa necessariamente usar a intenção, se você codificar sua URL, ela funcionará com o twitter share também.
fonte
Como @onteria_ mencionou, você precisa codificar todo o parâmetro. Para qualquer outra pessoa que enfrente o mesmo problema, você pode usar o seguinte bookmarklet para gerar o url codificado corretamente. Copie e cole na barra de endereço do seu navegador para criar o url de compartilhamento do Twitter . Certifique-se de que o
javascript:
prefixo esteja lá quando você copiá-lo na barra de endereço, o Google Chrome o remove durante a cópia.Fonte em JS Fiddle http://jsfiddle.net/2frkV/
fonte
Se você adicionar o manual no site html, basta substituir:
Com
Código html padrão para &
fonte
O Twitter agora permite enviar a URL por meio de um atributo de dados. Isso funciona muito bem para mim:
fonte
Use o recurso Twitter Intent https://dev.twitter.com/web/tweet-button/web-intent
fonte