JavaScript가없는 Facebook 공유 링크


137

다음 링크는 Twitter에서 페이지를 공유하기위한 것입니다.

http://twitter.com/share

JavaScript가 필요없는 Facebook과 비슷한 옵션이 있습니까?

http://facebook.com/sharer.php 에 대해 알고 있지만 get 매개 변수를 수동으로 삽입하거나 (내가하지 않을) JavaScript (내 상황에 맞지 않는)로 삽입해야합니다.

답변:


190

당신은 사용할 수 있습니다

<a href="https://www.facebook.com/sharer/sharer.php?u=#url" target="_blank">Share</a>

현재 매개 변수로 현재 URL을 전달하지 않으면 공유 옵션이 없습니다. 이를 위해 간접적 인 방법을 사용할 수 있습니다.

  1. 서버 측 페이지를 작성하십시오 (예 : "/sharer.aspx").
  2. 공유 기능을 원할 때마다이 페이지를 연결하십시오.
  3. "sharer.aspx"에서 참조 URL을 가져 와서 사용자를 " https://www.facebook.com/sharer/sharer.php?u= {referer}"로 리디렉션 하십시오.

ASP .Net 코드 예 :

public partial class Sharer : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var referer = Request.UrlReferrer.ToString();

        if(string.IsNullOrEmpty(referer))
        {
            // some error logic
            return;
        }

        Response.Clear();
        Response.Redirect("https://www.facebook.com/sharer/sharer.php?u=" + HttpUtility.UrlEncode(referer));
        Response.End();
    }
}

예, 이것은 좋은 옵션입니다. 그러나 이것이 js 버전과 같은 팝업으로 열리려면 어떻게해야합니까? 현재 새 탭에서 열립니다! 감사 !
Sagiruddin Mondal 2011

이것은 내가 요구 한 것이 아닙니다. 공유 할 페이지의 URL을 알아야하므로 href페이지의 URL로 "#url"을 바꿀 수 있습니다 . 그러나 twitter.com/share 링크를 사용하면 공유하는 페이지의 URL을 삽입 할 필요가 없습니다.
Web_Designer

1
이미지를 보내는 방법을 알고 있습니까?
miguelmpn

@miguelmpn (및 최신 독자)은이 답변을 참조하십시오 . 한마디로 : og:image태그.
Mosh Feu

이 특정 방법에 대한 설명서가 있습니까?
Naved Khan

129

시 2 : Justin이 지적한 것처럼 Facebook의 새로운 공유 대화 상자를 확인하십시오 . 후손에 대한 답을 그대로 두겠습니다. 이 답변은 더 이상 사용되지 않습니다


짧은 대답, 예. 자바 스크립트가 필요없는 Facebook에는 비슷한 옵션이 있습니다 (자, 강제적이지 않은 최소한의 인라인 JS가 있습니다. 참고 참조).

추신 :이 onclick부분은 팝업을 약간 사용자 정의하는 데 도움이되지만 코드가 작동하는 데 필요하지는 않습니다 .

페이스 북

<a href="https://www.facebook.com/sharer/sharer.php?u=URLENCODED_URL&t=TITLE"
   onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600');return false;"
   target="_blank" title="Share on Facebook">
</a>

트위터

<a href="https://twitter.com/share?url=URLENCODED_URL&via=TWITTER_HANDLE&text=TEXT"
   onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600');return false;"
   target="_blank" title="Share on Twitter">
</a>

@ superluminary ... 그것은 필요하지만 그것을 요구하지는 않습니다. 나는 당신이 그것을 (onclick 부분) 제거 할 수 있다고 언급했지만 여전히 작동합니다. 그러나 100 % 명확하지 않은 방법을 볼 수 있습니다 ... 편집하겠습니다.
King'ori Maina

2
우아한 타락의 좋은 예!
아놀드 다니엘스

6
+1. 다음 http://www.facebook.com/sharer.php으로 변경해야 합니다http://www.facebook.com/sharer/sharer.php
Nir Levy

1
사람들이 Facebook의 지시에 따라 공유 대화 상자 를 사용하도록이 답변을 업데이트합니다 .
Justin Skiles

TWITTER_HANDLE매개 변수 란 무엇입니까 ?
hamidfzm

38

코드에 JavaScript를 포함 시키면서도 JavaScript가 아닌 사용자를 지원할 수 있습니다.

사용자가 JavaScript를 활성화하지 않은 상태에서 다음 링크를 클릭하면 새 탭이 열립니다.

<!-- Remember to change URL_HERE, TITLE_HERE and TWITTER_HANDLE_HERE -->
<a href="http://www.facebook.com/sharer/sharer.php?u=URL_HERE&t=TITLE_HERE" target="_blank" class="share-popup">Share on Facebook</a>
<a href="http://www.twitter.com/intent/tweet?url=URL_HERE&via=TWITTER_HANDLE_HERE&text=TITLE_HERE" target="_blank" class="share-popup">Share on Twitter</a>
<a href="http://plus.google.com/share?url=URL_HERE" target="_blank" class="share-popup">Share on Googleplus</a>

share-popup클래스가 포함되어 있기 때문에 jQuery에서 이러한 클래스를 쉽게 참조하고 공유하는 도메인에 맞게 창 크기를 변경할 수 있습니다.

$ ( ". share-popup"). click (function () {
    var window_size = "width = 585, height = 511";
    var url = this.href;
    var domain = url.split ( "/") [2];
    스위치 (도메인) {
        사례 "www.facebook.com":
            window_size = "너비 = 585, 높이 = 368";
            단절;
        사례 "www.twitter.com":
            window_size = "너비 = 585, 높이 = 261";
            단절;
        사례 "plus.google.com":
            window_size = "폭 = 517, 높이 = 511";
            단절;
    }
    window.open (url, '', 'menubar = no, toolbar = no, resizable = yes, scrollbars = yes,'+ window_size);
    거짓을 반환;
});

더 이상 추악한 인라인 JavaScript 또는 수많은 창 크기 변경이 없습니다. 그리고 여전히 자바 스크립트가 아닌 사용자를 지원합니다.


좋은 해결책! 또한, 나는 현재 페이지 URL을 채우기 위해 자바 스크립트를 사용하고 있습니다 :$(".share-popup").each(function(){ var href = $( this ).attr( "href" ); href = href.replace( "URL_HERE", document.URL ); $( this ).attr( "href", href ); });
GavinoGrifoni

@GavinoGrifoni 자바 스크립트가 아닌 사용자를 지원하기 위해 현재 URL 서버 측을 포함하는 것이 좋습니다
rybo111

12

이 링크 유형을 실제로 사용해보십시오.

https://www.facebook.com/sharer.php?u=YOUR_URL_HERE
https://twitter.com/intent/tweet?url=YOUR_URL_HERE
https://plus.google.com/share?url=YOUR_URL_HERE
https://www.linkedin.com/shareArticle?mini=true&url=YOUR_URL_HERE

7

피드 대화 상자 페이지 에 설명 된대로 피드 URL "직접 URL"옵션을 사용할 수 있습니다 .

사용자를 / dialog / feed 엔드 포인트로 명시 적으로 지정하여 피드 대화 상자를 표시 할 수도 있습니다.

  https://www.facebook.com/dialog/feed?  
  app_id=123050457758183&
  link=https://developers.facebook.com/docs/reference/dialogs/&
  picture=http://fbrell.com/f8.jpg&
  name=Facebook%20Dialogs&
  caption=Reference%20Documentation&
  description=Using%20Dialogs%20to%20interact%20with%20users.&
  redirect_uri=http://www.example.com/response`

더 이상 문서의 어느 곳에서나 "공유"를 언급하지 않는 것 같습니다. 이것은 피드에 추가하는 개념으로 대체되었습니다.


2
그러나 앱 ID를 등록하지 않고 해당 대화 상자에 액세스 할 수 없습니까?
Eli

7

나는 그것이 오래된 스레드라는 것을 알고 있지만 프로젝트를 위해 그런 것을해야했고 2019 솔루션을 공유하고 싶었습니다.

새로운 dialogAPI는 매개 변수를 가져 와서 자바 스크립트없이 사용할 수 있습니다.

매개 변수는 다음과 같습니다.

  • app_id (필수)
  • href 전달하지 않은 경우 공유하려는 페이지의 URL은 현재 URL을 사용합니다.
  • hashtag##amsterdam 과 같은 기호 가 있어야합니다.
  • quote 링크와 공유 할 텍스트

자바 스크립트없이 href를 만들 수 있습니다.

<a href="https://www.facebook.com/dialog/feed?&app_id=APP_ID&link=URI&display=popup&quote=TEXT&hashtag=#HASHTAG" target="_blank">Share</a>

고려해야 할 한 가지는 Facebook이 Open Graph를 사용하고 있기 때문에 OG 태그가 올바르게 설정되지 않은 경우 원하는 결과를 얻지 못할 수 있습니다.


이 답변을 게시 해 주셔서 감사합니다. 그러나 Can't Load URL: The domain of this URL isn't included in the app's domains. To be able to load this URL, add all domains and subdomains of your app to the App Domains field in your app settings.localhost에 오류가 발생 합니다. 어떤 아이디어? FB 의 BasicAdvanced설정에 여러 도메인을 포함하려고 했지만 운이 없습니다.
padawanTony

display=popup데스크탑에서 작동하는 것처럼 보이지 않습니다 .
Nicke Manarin

6

이 답변 중 많은 부분이 더 이상 적용되지 않으므로 여기에 내 것이 있습니다.

Facebook Dev Page에 설명 된 공유 대화 상자를 사용하십시오 .

예:

https://www.facebook.com/dialog/share?
  app_id=<your_app_id>
  &display=popup
  &href=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2F
  &redirect_uri=https%3A%2F%2Fdevelopers.facebook.com%2Ftools%2Fexplorer

그러나 등록 된 app_id, href 및 리디렉션 URI를 넣어야합니다.


redirect_uri더 이상 필요하지 않습니다.
Mori


3

1
(iframe 버전 사용)
DMCS

이것은 내가 찾고있는 것이 아닙니다. 앵커 요소를 사용하고 싶습니다.
Web_Designer

죄송합니다. 운이 좋지 않습니다. Javascript 또는 iFramed입니다.
DMCS

3
사용자가 JavaScript를 비활성화하면 Facebook에서 페이지를 공유 할 수 없습니다. twitter.com/share 와 비슷한 링크 가 페이스 북에 있는지 궁금합니다 .
Web_Designer

1
@Flimm developers.facebook.com/bugs/252983554810810을 참조 하여 Noorin의 의견을 읽으십시오. {quote} Noorin Ladhani · · Facebook 팀 안녕하세요 Ronald-좋아요 버튼이 마음에 드시면 공유 버튼이 더 이상 사용되지 않습니다. {quote}
DMCS


2

자바 스크립트를 사용하고 싶지만 Facebook 자바 스크립트 라이브러리를 사용하지 않으려는 경우 :

<a id="shareFB" href="https://www.facebook.com/sharer/sharer.php?u=URLENCODED_URL&t=TITLE"
   onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600');return false;"   target="_blank" title="Share on Facebook">Share on Facebook</a>
<script type="text/javascript">document.getElementById("shareFB").setAttribute("href", "https://www.facebook.com/sharer/sharer.php?u=" + document.URL);</script>

자바 스크립트가 비활성화 된 경우에도 작동하지만 자바 스크립트가 활성화 된 경우 공유 미리보기가있는 팝업 창을 제공합니다.

Facebook js 스파이웨어를 사용하지 않고 한 번의 바늘 클릭 저장 :)


새 탭에서 열 수있는 방법이 있습니까? 지금은 팝업 팝업
Alauddin Ahmed

2

@ rybo111의 솔루션에 추가하면 LinkedIn 공유는 다음과 같습니다.

<a href="http://www.linkedin.com/shareArticle?mini=true&url={articleUrl}&title={articleTitle}&summary={articleSummary}&source={articleSource}" target="_blank" class="share-popup">Share on LinkedIn</a>

이것을 자바 스크립트에 추가하십시오 :

case "www.linkedin.com":
    window_size = "width=570,height=494";
    break;

LinkedIn 설명서에 따라 https://developer.linkedin.com/docs/share-on-linkedin ( "사용자 정의 URL"섹션 참조)

관심있는 사람은 LinkedIn 로고가있는 Rails 앱에서 이것을 사용 했으므로 도움이 될만한 코드는 다음과 같습니다.

<%= link_to image_tag('linkedin.png', size: "50x50"), "http://www.linkedin.com/shareArticle?mini=true&url=#{job_url(@job)}&title=#{full_title(@job.title).html_safe}&summary=#{strip_tags(@job.description)}&source=SOURCE_URL", class: "share-popup" %>

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