J'essaie de mettre un lien de partage Twitter dans un email. Comme cela se trouve dans un courrier électronique, je ne peux pas compter sur JavaScript et je dois utiliser le bouton Tweet "Construis ton propre".
Par exemple, partager un lien vers Google:
<a href="http://www.Twitter.com/share?url=http://www.google.com/>Tweet</a>
Cela fonctionne bien. Le problème que je rencontre est lorsque l'URL contient une chaîne de requête.
<a href="http://www.Twitter.com/share?url=http://mysite.org/foo.htm?bar=123&baz=456">Tweet</a>
Les URL avec des chaînes de requête confondent le service de réduction d'URL de Twitter, t.co. J'ai essayé le codage d'URL de différentes manières et je ne peux rien faire fonctionner. Le plus proche que j'ai eu est en faisant cela.
<a href="http://www.Twitter.com/share?url=http://mysite.org/foo.htm%3Fbar%3D123%26baz%3D456">Tweet</a>
Ici, je n'ai encodé que la chaîne de requête. Lorsque je le fais, t.co réussit à raccourcir l’URL, mais après avoir suivi le lien raccourci, il vous conduit à l’URL codée. Je vois http://mysite.org/foo.htm%3Fbar%3D123%26baz%3D456
dans la barre d'adresse et j'obtiens l'erreur suivante dans le navigateur
Pas trouvé
L'URL demandée /foo.htm?bar=123&baz=456 est introuvable sur ce serveur.
Je ne sais pas comment résoudre ce problème.
Modifier: Re: onteria_
J'ai essayé d'encoder l'intégralité de l'URL. Quand je fais cela, aucune URL n'apparaît dans le Tweet.
Cela peut être résolu en utilisant https://Twitter.com/intent/Tweet
au lieu de http://www.Twitter.com/share
. En utilisant la fonction intent/Tweet
, vous codez simplement l’URL en entier et cela fonctionne comme un charme.
Cela fonctionnera pour vous
http://Twitter.com/share?text=text goes here&url=http://url goes here&hashtags=hashtag1,hashtag2,hashtag3
Voici un exemple en direct à ce sujet
Utilisez l'intention de Tweet Web, voici le lien simple:
https://Twitter.com/intent/tweet?url=<?=urlencode($url)?>
plus de variables sur https://dev.Twitter.com/web/Tweet-button/web-intent
Vous n'avez pas nécessairement besoin d'utiliser l'intention, si vous codez votre URL, cela fonctionnera également avec le partage Twitter.
Vous devez modifier & en% 26 dans la chaîne de requête à partir de votre URL
Regardez ceci: https://dev.Twitter.com/discussions/8616
Comme @onteria_ l'a mentionné, vous devez coder l'intégralité du paramètre. Pour toute autre personne confrontée au même problème, vous pouvez utiliser le bookmarklet suivant pour générer l'URL correctement codée. Copier le coller dans la barre d'adresse de votre navigateur pour créer l'URL de partage Twitter. Assurez-vous que le préfixe javascript:
est présent lorsque vous le copiez dans la barre d'adresse. Google Chrome le supprime lors de la copie.
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))})();
Source sur JS Fiddle http://jsfiddle.net/2frkV/
Ne devient pas plus simple que ça:
<a href="https://Twitter.com/intent/tweet?text=optional%20promo%20text%20http://example.com/foo.htm?bar=123&baz=456" target="_blank">Tweet</a>
Twitter vous permet maintenant d'envoyer l'URL via un attribut de données. Cela fonctionne très bien pour moi:
<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>
Utiliser la ressource d'intention Twitter https://dev.Twitter.com/web/Tweet-button/web-intent
Vous pouvez utiliser ces fonctions:
function shareOnFB(){
var url = "https://www.facebook.com/sharer/sharer.php?u=https://yoururl.com&t=your message";
window.open(url, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600');
return false;
}
function shareOntwitter(){
var url = 'https://Twitter.com/intent/tweet?url=URL_HERE&via=getboldify&text=yourtext';
TwitterWindow = window.open(url, 'TwitterWindow',width=600,height=300);
return false;
}
function shareOnGoogle(){
var url = "https://plus.google.com/share?url=https://yoururl.com";
window.open(url, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=350,width=480');
return false;
}
<a onClick="shareOnFB()"> Facebook </a>
<a onClick="shareOntwitter()"> Twitter </a>
<a onClick="shareOnGoogle()"> Google </a>