이메일에 트위터 공유 링크를 넣으려고합니다. 이것은 이메일에 있기 때문에 JavaScript에 의존 할 수 없으며 “Build Your Own”트윗 버튼을 사용해야합니다.
예를 들어, Google에 대한 링크 공유 :
<a href="http://www.twitter.com/share?url=http://www.google.com/>Tweet</a>
이것은 잘 작동합니다. 내가 가진 문제는 URL에 쿼리 문자열이있을 때입니다.
<a href="http://www.twitter.com/share?url=http://mysite.org/foo.htm?bar=123&baz=456">Tweet</a>
쿼리 문자열이있는 URL은 Twitter의 URL 단축 서비스 인 t.co를 혼동합니다. 다양한 방법으로 URL 인코딩을 시도했지만 아무것도 작동하지 않습니다. 내가 얻은 가장 가까운 것은 이것을하는 것입니다.
<a href="http://www.twitter.com/share?url=http://mysite.org/foo.htm%3Fbar%3D123%26baz%3D456">Tweet</a>
여기에서는 쿼리 문자열 만 인코딩했습니다. 이렇게하면 t.co가 URL을 성공적으로 단축하지만 단축 링크를 따라 가면 인코딩 된 URL로 이동합니다. 나는 참조 http://mysite.org/foo.htm%3Fbar%3D123%26baz%3D456
주소 표시 줄에 브라우저에 다음과 같은 오류가
찾을 수 없음
요청한 URL /foo.htm?bar=123&baz=456을이 서버에서 찾을 수 없습니다.
이 문제를 해결하는 방법을 잃어 버렸습니다.
편집 : Re : onteria_
전체 URL 인코딩을 시도했습니다. 그렇게하면 트윗에 URL이 표시되지 않습니다.
답변
이것은 당신을 위해 일할 것입니다
http://twitter.com/share?text=text goes here&url=http://url goes here&hashtags=hashtag1,hashtag2,hashtag3
여기에 대한 라이브 예가 있습니다.
답변
https://twitter.com/intent/tweet
대신을 사용하여 해결할 수 있습니다 http://www.twitter.com/share
. 이 intent/tweet
기능을 사용하면 전체 URL을 간단히 URL 인코딩하고 매력처럼 작동합니다.
https://dev.twitter.com/web/intents
답변
트윗 웹 의도를 사용하십시오. 이것은 간단한 링크입니다.
https://twitter.com/intent/tweet?url=<?=urlencode($url)?>
https://dev.twitter.com/web/tweet-button/web-intent 에서 더 많은 변수
답변
이보다 더 간단하지 않습니다.
<a href="https://twitter.com/intent/tweet?text=optional%20promo%20text%20http://example.com/foo.htm?bar=123&baz=456" target="_blank">Tweet</a>
답변
다음 기능을 사용할 수 있습니다.
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>
답변
URL의 쿼리 문자열에서 &를 % 26으로 변경해야합니다.
답변
나는 모든 방법을 참조합니다.
쿼리를 두 번 인코딩하는 것이 빠른 솔루션입니다.
const query = a=123&b=456;
const url = `https://example.com/test?${encodeURIComponent(encodeURIComponent(query),)}`;
const twitterSharingURL=`https://twitter.com/intent/tweet?&url=${url}`