plugin - Compartir una URL con una cadena de consulta en Twitter
twitter share button (8)
Estoy tratando de poner un enlace para compartir en Twitter en un correo electrónico. Como se trata de un correo electrónico, no puedo confiar en JavaScript y tengo que usar el botón "Crear tu propio".
Por ejemplo, compartir un enlace a Google:
<a href="http://www.twitter.com/share?url=http://www.google.com/>Tweet</a>
Esto funciona bien El problema que tengo es cuando la URL tiene una cadena de consulta.
<a href="http://www.twitter.com/share?url=http://mysite.org/foo.htm?bar=123&baz=456">Tweet</a>
Las URL con cadenas de consulta confunden el servicio de acortamiento de URL de Twitter, t.co. He intentado con la codificación URL esto de varias maneras y no puedo hacer que nada funcione. Lo más cercano que he conseguido es haciendo esto.
<a href="http://www.twitter.com/share?url=http://mysite.org/foo.htm%3Fbar%3D123%26baz%3D456">Tweet</a>
Aquí he codificado solo la cadena de consulta. Cuando hago esto, t.co acorta con éxito la URL, pero al seguir el enlace acortado, lo lleva a la URL codificada. Veo http://mysite.org/foo.htm%3Fbar%3D123%26baz%3D456
en la barra de direcciones y obtengo el siguiente error en el navegador
Extraviado
La URL solicitada /foo.htm?bar=123&baz=456 no se encontró en este servidor.
No sé cómo resolver este problema.
Editar: Re: onteria_
Intenté codificar toda la URL. Cuando lo hago, no aparece ninguna URL en el Tweet.
Como se menciona @onteria_, necesitas codificar todo el parámetro. Para cualquier otra persona que enfrente el mismo problema, puede usar el siguiente bookmarklet para generar la url adecuadamente codificada. Copie y péguelo en la barra de direcciones de su navegador para crear la url de compartir de twitter . Asegúrese de que el prefijo javascript:
esté allí cuando lo copie en la barra de direcciones, Google Chrome lo elimina al copiar.
javascript:(function(){var url=prompt("Enter the url to share");if(url)prompt("Share the following url - ","http://www.twitter.com/share?url="+encodeURIComponent(url))})();
Fuente en JS Fiddle http://jsfiddle.net/2frkV/
Debe cambiar & a% 26 en cadena de consulta de su url
Mira esto: https://dev.twitter.com/discussions/8616
Esto funcionará para usted
http://twitter.com/share?text=text goes here&url=http://url goes here&hashtags=hashtag1,hashtag2,hashtag3
Aquí hay un ejemplo en vivo al respecto
Esto se puede resolver usando https://twitter.com/intent/tweet
lugar de http://www.twitter.com/share
. Usando la función intent/tweet
, simplemente URL codifica toda su URL y funciona como un amuleto.
No es necesario que utilices la intención, si codificas tu URL, funcionará también con Twitter.
Twitter ahora te permite enviar la URL a través de un atributo de datos. Esto funciona genial para mí:
<a href="javascript:;" class="twitter-share-button" data-lang="en" data-text="check out link b" data-url="http://www.lyricvideos.org/tracks?videoURL=SX05JZ4FisE">Tweet</a>
Utilice el recurso Twitter Intent dev.twitter.com/web/tweet-button/web-intent
Utilice la intención web de tweet, este es el enlace simple:
https://twitter.com/intent/tweet?url=<?=urlencode($url)?>
más variables en dev.twitter.com/web/tweet-button/web-intent