JavaScript olmadan Facebook paylaşım bağlantısı


Yanıtlar:


190

Kullanabilirsin

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

Şu anda geçerli URL'yi parametre olarak iletmeden paylaşım seçeneği yoktur. Bunu başarmak için dolaylı bir yol kullanabilirsiniz.

  1. Bir sunucu tarafı sayfası oluşturun, örneğin: "/sharer.aspx"
  2. Paylaşım işlevselliğini istediğiniz zaman bu sayfaya bağlayın.
  3. "Sharer.aspx" içinde yönlendiren URL'yi alın ve kullanıcıyı " https://www.facebook.com/sharer/sharer.php?u= {referer}" adresine yönlendirin

Örnek ASP .Net kodu:

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

evet bu güzel bir seçenek. Ama bunu js sürümü gibi bir pop-up açmak istiyorsanız, ne yapmalıyım? Şu anda yeni bir sekmede açılıyor! Teşekkürler !
Sagiruddin Mondal

İstediğim bu değildi. Bu, paylaşılmakta olan sayfanın URL'sini bilmenizi gerektirir, böylece içindeki "#url" ifadesini hrefsayfanın URL'siyle değiştirebilirsiniz. Ancak twitter.com/share bağlantısını kullanmak, paylaştığınız sayfanın URL'sini eklemenizi gerektirmez.
Web_Designer

1
Nasıl resim göndereceğinizi biliyor musunuz?
miguelmpn

@miguelmpn (ve daha yeni okuyucu) için bu cevaba bakınız . Kısaca: og:imageetiket.
Mosh Feu

Bu yöntem için dokümantasyon var mı?
Naved Khan

129

Ps 2: Justin'in işaret ettiği gibi , Facebook'un yeni Paylaşım İletişim Kutusuna bakın . Cevabı gelecek nesiller için olduğu gibi bırakacaktır. Bu cevap kullanılmıyor


Kısa cevap, evet Facebook için javascript gerektirmeyen benzer bir seçenek var (aslında, zorunlu olmayan minimum satır içi JS var, nota bakın).

Ps: onclickBölüm sadece açılır pencereyi biraz özelleştirmenize yardımcı olur, ancak kodun çalışması için gerekli değildir ... onsuz iyi çalışacaktır.

Facebook

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

heyecan

<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 ... var ama gerektirmiyor. Onu (onclick kısmı) kaldırabileceğinden bahsetmiştim ... ve yine de işe yarayacak. Ama her şeyin nasıl% 100 net olmadığını görebiliyorum ... Düzenleyeceğim.
King'ori Maina

2
Zarif yıkımın güzel bir örneği!
Arnold Daniels

6
+1. Değişmelidir http://www.facebook.com/sharer.phpiçinhttp://www.facebook.com/sharer/sharer.php
Nir Levy

1
Bu yanıtı, kullanıcıları Facebook tarafından yönlendirildiği gibi Paylaşım İletişim Kutusunu kullanmaya yönlendirmek için güncelleyeceğim .
Justin Skiles

Nedir TWITTER_HANDLEparametre?
hamidfzm

38

Kodunuza JavaScript eklemek ve yine de JavaScript olmayan kullanıcıları desteklemek mümkündür.

Bir kullanıcı JavaScript etkinleştirilmeden aşağıdaki bağlantılardan birini tıklarsa, yeni bir sekme açılır:

<!-- 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-popupSınıfı içerdiklerinden, bunları jQuery'de kolayca referans alabilir ve pencere boyutunu, paylaştığımız etki alanına uyacak şekilde değiştirebiliriz:

$ ( "Paylaşım açılan"). {) ((Function tıklayın
    var window_size = "genişlik = 585, yükseklik = 511";
    var url = this.href;
    var domain = url.split ("/") [2];
    anahtar (alan adı) {
        vaka "www.facebook.com":
            window_size = "genişlik = 585, yükseklik = 368";
            break;
        vaka "www.twitter.com":
            window_size = "genişlik = 585, yükseklik = 261";
            break;
        vaka "plus.google.com":
            window_size = "genişlik = 517, yükseklik = 511";
            break;
    }
    window.open (url, '', 'menubar = hayır, araç çubuğu = hayır, yeniden boyutlandırılabilir = evet, kaydırma çubukları = evet,' + pencere_boyutu);
    yanlış döndür;
});

Artık çirkin satır içi JavaScript veya sayısız pencere boyutunda değişiklik yok. Ayrıca JavaScript olmayan kullanıcıları da destekliyor.


Güzel çözüm! Ayrıca, geçerli sayfa URL'sini doldurmak için bazı javascript kullanıyorum:$(".share-popup").each(function(){ var href = $( this ).attr( "href" ); href = href.replace( "URL_HERE", document.URL ); $( this ).attr( "href", href ); });
GavinoGrifoni

@GavinoGrifoni, JavaScript olmayan kullanıcıları desteklemek için geçerli URL sunucu tarafını dahil etmek daha iyidir
rybo111

12

Bu bağlantı türlerini deneyin aslında benim için çalışıyor.

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

Feed İletişim Kutusu sayfasında açıklandığı gibi Feed URL'si "Doğrudan URL" seçeneğini kullanabilirsiniz :

Ayrıca, kullanıcıyı açıkça / dialog / feed uç noktasına yönlendirerek bir Feed İletişim Kutusu da getirebilirsiniz:

  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`

Artık dokümanlarının hiçbir yerinde "paylaşım" dan bahsetmedikleri anlaşılıyor; bunun yerini Feed'inize ekleme kavramı almıştır.


2
Ancak bir Uygulama Kimliği kaydetmeden bu iletişim kutusuna erişmek mümkün değil mi?
Eli

7

Eski bir konu olduğunu biliyorum, ama bir proje için böyle bir şey yapmak zorunda kaldım ve 2019 çözümünü paylaşmak istedim.

Yeni dialogAPI parametreler alabilir ve herhangi bir javascript olmadan kullanılabilir.

Parametreler:

  • app_id (Gereklidir)
  • href Hiçbirinin geçmemesi durumunda paylaşmak istediğiniz sayfanın URL'si geçerli URL'yi kullanır.
  • hashtagolması #örnek #amsterdam için sembol
  • quote bağlantıyla paylaşılacak metin

Herhangi bir javascript olmadan bir href oluşturabilirsiniz.

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

Dikkate alınması gereken bir şey, Facebook'un Açık Grafik kullanıyor olması, bu nedenle OG etiketlerinizin düzgün ayarlanmamış olması durumunda istediğiniz sonuçları alamayabilirsiniz.


Bu yanıtı gönderdiğiniz için teşekkür ederiz. Ancak, 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 üzerinde olduğum hatayı alıyorum. Herhangi bir fikir? FB Basicve Advancedayarları birkaç etki alanları dahil etmeye çalıştım ama şans yok.
padawanTony

display=popupMasaüstünde çalışıyor gibi görünmüyor .
Nicke Manarin

6

Bu cevapların çoğu artık geçerli değil, işte benim:

Facebook Geliştirici Sayfasında açıklanan Paylaşım İletişim Kutusunu kullanın .

Misal:

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

Ancak kayıtlı app_id, href ve bir yönlendirme uri koymak zorunda.


redirect_uriartık gerekli değil.
Mori


3

1
(iframe sürümünü kullanın)
DMCS

Aradığım şey bu değil. Sadece bir sabitleme elemanı kullanmak istiyorum.
Web_Designer

Üzgünüm, o zaman şansın kalmadı. Javascript veya iFramed.
DMCS

3
Kullanıcı JavaScript devre dışı bırakıldıysa, sayfayı Facebook'ta paylaşamayacaklarını söylüyorum. Ben sadece twitter.com/share gibi ama facebook için benzer bir bağlantı olup olmadığını merak ediyordum .
Web_Designer

1
@Flimm bakınız developers.facebook.com/bugs/252983554810810 ve Noorin yorumunu okuyun. {quote} Noorin Ladhani · · Facebook Ekibi Merhaba Ronald - Paylaş düğmesi Beğen düğmesi lehine kullanımdan kaldırıldı. {quote}
DMCS


2

Javascript kullanmak isteyen ancak Facebook javascript kütüphanesini kullanmak istemeyenler için:

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

Javascript devre dışı olsa bile çalışır, ancak javascript etkinse paylaşım önizlemesini içeren bir açılır pencere sunar.

Herhangi bir Facebook js casus yazılım kullanmıyorken bir iğne tıklamayı kaydeder :)


Yeni sekmede açmanın herhangi bir yolu var mı? Şu anda bir pening açılır
Alauddin Ahmed

2

@ Rybo111'nin çözümüne eklediğinizde, LinkedIn paylaşma yöntemi şöyle olabilir:

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

ve bunu Javascript'inize ekleyin:

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

LinkedIn belgelerine göre: https://developer.linkedin.com/docs/share-on-linkedin ("Özelleştirilmiş URL" bölümüne bakın)

İlgilenen herkes için bunu LinkedIn logolu bir Rails uygulamasında kullandım, bu yüzden yardımcı olabilecek kodum şöyledir:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.