ลิงก์แชร์ Facebook โดยไม่ใช้ JavaScript


140

ลิงค์ต่อไปนี้มีไว้สำหรับแชร์เพจบน Twitter:

http://twitter.com/share

มีตัวเลือกคล้ายกันสำหรับ Facebook ที่ไม่ต้องใช้ JavaScript หรือไม่?

ฉันรู้เกี่ยวกับhttp://facebook.com/sharer.phpแต่ต้องมีการแทรกพารามิเตอร์ get ด้วยตนเอง (ซึ่งฉันจะไม่ทำ) หรือด้วย JavaScript (ซึ่งไม่เหมาะกับสถานการณ์ของฉัน)

คำตอบ:


197

คุณสามารถใช้

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

ใช่นี่เป็นตัวเลือกที่ดี แต่ถ้าอยากให้เปิดใน pop up เหมือนเวอร์ชั่น js ต้องทำอย่างไร? ขณะนี้กำลังเปิดในแท็บใหม่! ขอบคุณ!
Sagiruddin Mondal

นี่ไม่ใช่สิ่งที่ฉันขอ สิ่งนี้ต้องการให้คุณทราบ URL ของเพจที่แชร์ดังนั้นคุณจึงสามารถแทนที่ "#url" ในhrefURL ของเพจได้ การใช้ลิงก์twitter.com/shareแต่คุณไม่จำเป็นต้องใส่ URL ของเพจที่คุณแชร์
Web_Designer

1
คุณรู้วิธีส่งภาพหรือไม่?
miguelmpn

@miguelmpn (และผู้อ่านรุ่นใหม่) ดูคำตอบนี้ กล่าวโดยย่อ: og:imagetag.
Mosh Feu

มีเอกสารสำหรับวิธีนี้โดยเฉพาะหรือไม่?
Naved Khan

132

ps 2: ในฐานะที่เป็นแหลมออกโดยจัสติน , ตรวจสอบของ Facebook ใหม่แบ่งปันโต้ตอบ จะปล่อยให้คำตอบเป็นอยู่สำหรับลูกหลาน คำตอบนี้ล้าสมัย


คำตอบสั้น ๆ ใช่มีตัวเลือกที่คล้ายกันสำหรับ Facebook ที่ไม่ต้องใช้จาวาสคริปต์ (ดีมี JS อินไลน์ขั้นต่ำบางตัวที่ไม่บังคับดูหมายเหตุ)

Ps: 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 ... มี แต่ไม่ต้องใช้. ฉันได้กล่าวว่าคุณสามารถลบออกได้ (ส่วนที่คลิก) ... และจะยังใช้งานได้ แต่ฉันเห็นว่ามันไม่ชัดเจน 100% ... ฉันจะแก้ไข
King'ori Maina

2
ตัวอย่างที่ดีของการย่อยสลายที่สง่างาม!
Arnold Daniels

6
+1. ควรเปลี่ยนhttp://www.facebook.com/sharer.phpเป็นhttp://www.facebook.com/sharer/sharer.php
Nir Levy

1
ฉันจะอัปเดตคำตอบนี้เพื่อชี้ให้ผู้คนใช้กล่องโต้ตอบแบ่งปันตามที่ Facebook กำหนด
Justin Skiles

TWITTER_HANDLEพารามิเตอร์คืออะไร?
hamidfzm

39

เป็นไปได้ที่จะรวม 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") คลิก (function () {
    var window_size = "width = 585, height = 511";
    var url = this.href;
    var โดเมน = url.split ("/") [2];
    สวิตช์ (โดเมน) {
        กรณี "www.facebook.com":
            window_size = "width = 585, height = 368";
            หยุดพัก;
        กรณี "www.twitter.com":
            window_size = "width = 585, height = 261";
            หยุดพัก;
        กรณี "plus.google.com":
            window_size = "width = 517, height = 511";
            หยุดพัก;
    }
    window.open (url, '', 'menubar = no, toolbar = no, resizable = yes, scrollbars = yes,' + window_size);
    กลับเท็จ
});

ไม่มี JavaScript แบบอินไลน์ที่น่าเกลียดอีกต่อไปหรือการปรับเปลี่ยนขนาดหน้าต่างนับไม่ถ้วน และยังรองรับผู้ใช้ที่ไม่ใช่ 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 ฝั่งเซิร์ฟเวอร์ปัจจุบันเพื่อรองรับผู้ใช้ที่ไม่ใช่ JavaScript
rybo111

16

ลองใช้ประเภทลิงค์เหล่านี้ได้ผลจริงสำหรับฉัน

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

9

ฉันรู้ว่ามันเป็นกระทู้เก่า แต่ฉันต้องทำอะไรแบบนั้นกับโปรเจ็กต์และฉันต้องการแบ่งปันวิธีแก้ปัญหาปี 2019

dialogAPI ใหม่สามารถรับพารามิเตอร์และใช้งานได้โดยไม่ต้องใช้จาวาสคริปต์

พารามิเตอร์คือ:

  • app_id (จำเป็น)
  • href URL ของหน้าที่คุณต้องการแบ่งปันในกรณีที่ไม่มีการส่งผ่านจะใช้ URL ปัจจุบัน
  • hashtagต้องมี#สัญลักษณ์เช่น #amsterdam
  • quote ข้อความที่จะแชร์กับลิงค์

คุณสามารถสร้าง href ได้โดยไม่ต้องใช้ javascript เลย

<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 ความคิดใด ๆ ? ฉันพยายามรวมหลายโดเมนทั้งในBasicและAdvancedการตั้งค่าบน FB แต่โชคไม่ดี
padawanTony

ดูเหมือนไม่display=popupทำงานบนเดสก์ท็อป
Nicke Manarin

7

คุณสามารถใช้ตัวเลือก "URL โดยตรง" ของ Feed URL ตามที่อธิบายไว้ในหน้าFeed Dialog :

นอกจากนี้คุณยังสามารถเปิดกล่องโต้ตอบฟีดได้โดยกำหนดให้ผู้ใช้ไปยังปลายทาง / โต้ตอบ / ฟีดอย่างชัดเจน:

  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
แต่ไม่สามารถเข้าถึงกล่องโต้ตอบนั้นได้โดยไม่ต้องลงทะเบียน App ID?
Eli

6

คำตอบมากมายเหล่านี้ใช้ไม่ได้อีกต่อไปดังนั้นนี่คือของฉัน:

ใช้แบ่งปันโต้ตอบอธิบายที่Facebook Dev หน้า

ตัวอย่าง:

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

http://facebook.com/sharer.phpเลิกใช้งานแล้ว

คุณมีตัวเลือกสองสามอย่าง (ใช้เวอร์ชัน iframe):

http://developers.facebook.com/docs/reference/plugins/like/

http://developers.facebook.com/docs/reference/plugins/send/

https://developers.facebook.com/docs/reference/plugins/like-box/


1
(ใช้เวอร์ชัน iframe)
DMCS

นี่ไม่ใช่สิ่งที่ฉันกำลังมองหาจริงๆ ฉันแค่ต้องการใช้องค์ประกอบจุดยึด
Web_Designer

ขออภัยคุณไม่โชคดี เป็น Javascript หรือ iFramed
DMCS

3
ฉันกำลังบอกว่าถ้าผู้ใช้ปิดการใช้งาน JavaScript พวกเขาจะไม่สามารถแชร์เพจบน Facebook ได้ ฉันแค่สงสัยว่ามีลิงค์ที่คล้ายกันเช่นtwitter.com/shareแต่สำหรับ facebook
Web_Designer

1
@Flimm โปรดดูที่developers.facebook.com/bugs/252983554810810และอ่านความคิดเห็นจาก Noorin {quote} Noorin Ladhani ··ทีมงาน Facebook สวัสดี Ronald - ปุ่มแชร์ถูกเลิกใช้งานเนื่องจากปุ่ม Like {quote}
DMCS

3

ในกรณีที่คุณต้องการแบ่งปันในฟอรัมเพิ่มเติมนี่คือวิธีแก้ปัญหา .. https://github.com/bradvin/social-share-urls


เป็นโครงการที่ยอดเยี่ยม! คุณสามารถรับ URL ได้จากส่วนสำคัญ: gist.github.com/HoldOffHunger/1998b92acb80bc83547baeaff68aaaf4
Fabian von Ellerts

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>

และเพิ่มสิ่งนี้ลงใน Javascript ของคุณ:

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

ตามเอกสาร LinkedIn: https://developer.linkedin.com/docs/share-on-linkedin (ดูส่วน "URL ที่กำหนดเอง")

สำหรับใครก็ตามที่สนใจฉันใช้สิ่งนี้ในแอพ Rails ที่มีโลโก้ LinkedIn ดังนั้นนี่คือรหัสของฉันหากอาจช่วยได้:

<%= 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.