Twitter에서 쿼리 문자열과 URL 공유


118

이메일에 트위터 공유 링크를 넣으려고합니다. 이것은 이메일에 있기 때문에 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이 표시되지 않습니다.


1
전체 URL을 URL 인코딩해야합니다. 여기에는 http://아래 에서 모든 것이 포함 됩니다
onteria_ 2011-06-01

답변:


171

이것은 당신을 위해 일할 것입니다

http://twitter.com/share?text=text goes here&url=http://url goes here&hashtags=hashtag1,hashtag2,hashtag3

여기에 대한 라이브 예가 있습니다.


http://twitter.com/share?text=Im Twitter에서 공유 & url = https : //stackoverflow.com/users/2943186/youssef-subehi&hashtags=stackoverflow,example,youssefusf


… 알고 계시다면… 원래 질문에 답했다면 좋은 대답이었을 것입니다.
Dave Land

110

https://twitter.com/intent/tweet대신을 사용하여 해결할 수 있습니다 http://www.twitter.com/share. 이 intent/tweet기능을 사용하면 전체 URL을 간단히 URL 인코딩하고 매력처럼 작동합니다.

https://dev.twitter.com/web/intents


Plume 및 Tweetcaster는이 형식을 처리하지 않습니다 (URL에 따라 의도 또는 공유에 대한 프로필 만 표시). Tweetdeck은 twitter.com URL을 전혀 처리하지 않는 것 같습니다.
Pierre-Luc Paour

또한이 링크를 참조하십시오 -blog.socialsourcecommons.org/2011/03/…
Alpesh Trivedi

2
https://twitter.com/intent/tweet?text={text_to_share}모든 플랫폼에서 완벽하게 작동합니다. 이것에 대해 높고 낮게 검색했습니다 .. 감사합니다!
Jack Dewhurst


6

이보다 더 간단하지 않습니다.

<a href="https://twitter.com/intent/tweet?text=optional%20promo%20text%20http://example.com/foo.htm?bar=123&baz=456" target="_blank">Tweet</a>

4

다음 기능을 사용할 수 있습니다.

 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>

자바 스크립트에 의존하지 않는 솔루션 var url = ...은 이메일을 생성 할 때 이러한 링크 ( ) 만 구축합니다 .
Thomas Ebert


3

나는 모든 방법을 참조합니다.

쿼리를 두 번 인코딩하는 것이 빠른 솔루션입니다.

const query = a=123&b=456;
const url = `https://example.com/test?${encodeURIComponent(encodeURIComponent(query),)}`;


const twitterSharingURL=`https://twitter.com/intent/tweet?&url=${url}`

2

인 텐트를 사용할 필요는 없습니다. URL을 인코딩하면 트위터 공유에서도 작동합니다.


1

@onteria_가 언급했듯이 전체 매개 변수를 인코딩해야합니다. 동일한 문제에 직면 한 다른 사람을 위해 다음 북마크릿을 사용하여 올바르게 인코딩 된 URL을 생성 할 수 있습니다. 브라우저의 주소 표시 줄에 붙여 넣어 트위터 공유 URL 을 만듭니다 . javascript:주소 표시 줄에 복사 할 때 접두사가 있는지 확인하십시오 . Google 크롬은 복사 할 때이를 제거합니다.

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))})();

JS Fiddle http://jsfiddle.net/2frkV/의 소스


1

html 사이트에 매뉴얼을 추가하면 다음을 대체하십시오.

&

&amp;

&에 대한 표준 HTML 코드


0

이제 Twitter에서 데이터 속성을 통해 URL을 보낼 수 있습니다. 이것은 나를 위해 잘 작동합니다.

<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>

누구든지 이것이 트위터 API의 자바 스크립트에 의존하여 속성에서 URL을 가져온 다음 브라우저를 올바른 URL로 리디렉션하는지 테스트 한 적이 있습니까?
Mark

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.