it-swarm-tr.com

Facebook sharer.php artık detaylı parametreleri kabul etmiyor mu?

URL ile paylaşılan bir açılır pencere (window.open üzerinden) açıyoruz

https://www.facebook.com/sharer/sharer.php?s=100&p[title]=EXAMPLE&p[summary]=EXAMPLE&p[url]=EXAMPLE&p[images][0]=EXAMPLE 

ve geçen ay bilinmeyen bir noktaya kadar her şey yolundaydı.

Şimdi olan şu; popup iletişim kutusu açılır ve sorgu dizesi parametreleri tarafından sağlanan Başlık, Açıklama, Resim ve URL’yi içerir, ancak gönderi gönderildiğinde, Facebook’ta ortaya çıkan duvar postasının başlığı, Açıklama ve Görüntü doğru URL.

Bunun çalışmasını aniden durdurabilecek değişiklikler olup olmadığını bilen var mı?

Bazı yaygın tepkilerin ön-boşaltılması:

  • "sharer.php URL kullanımdan kaldırıldı" - kullanım devam ediyor gibiydi ve fikir birliğine varılmasının, büyük ölçüde yapışmış sayıldığı düşünülüyor gibiydi - aniden kesilmesi gerektiği konusunda herhangi bir belirti görmedim - bir şeyi kaçırmış olabilirdi

  • "JavaScript SDK/bu OG meta etiketlerini kullan" - özel durumumda mümkün değil - sadece bana güven ... GERÇEKTEN isteyip istemediğinizi açıklayabilirim, ancak gerçekten alakalı değil.

  • "Yayın iletişim kutusunu kullan" - FB sayfalarında eklerle gönderme için destek olmadığından uygun değil

96
tdous

Facebook artık sharer.php içindeki özel parametreleri desteklemiyor

Paylaşıcı artık özel parametreleri kabul etmeyecek ve facebook, önizlemede görüntülenen bilgileri, facebook'ta göründüğü gibi, url OG meta etiketlerinden bir gönderi olarak çekecektir.

sharer.php yerine dialog/feed'leri kullanın

https://www.facebook.com/dialog/feed?
  app_id=145634995501895
  &display=popup&caption=An%20example%20caption 
  &link=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2Fdialogs%2F
  &redirect_uri=https://developers.facebook.com/tools/Explorer

FB ekibinden resmi cevap

102
jsnjack

18 Temmuz 2017'den itibaren Facebook, kullanıcılar tarafından belirlenen özel parametreleri göz ardı etmeye karar vermiştir. Bu seçim, bu cevabın sunduğu olanakların çoğunu engeller ve ayrıca çeşitli web sitelerinde kullanılan düğmeleri de kırar.

quote ve hashtag parametreleri Aralık 2018'den itibaren çalışır.


Bunun çalışmasını aniden durdurabilecek değişiklikler olup olmadığını bilen var mı?

Parametreler değişti. Halen kabul edilmiş cevaplar:

Facebook artık sharer.php içindeki özel parametreleri desteklemiyor

Fakat bu tamamen doğru değil. Belki, desteklemiyorlar veya onları onaylayın , ancak doğru adları biliyorsanız, özel parametreler kullanılabilir. Bunlar şunları içerir:

  • URL (elbette) → u
  • özel resim → picture
  • özel başlık → title
  • özel fiyat teklifi → quote
  • özel açıklama → description
  • resim yazısı (aka web sitesi adı) → caption

Örneğin, bu soruyu aşağıdaki URL ile paylaşabilirsiniz:

https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fstackoverflow.com%2Fq%2F20956229%2F1101509&picture=http%3A%2F%2Fwww.applezein.net%2Fwordpress%2Fwp-content%2Fuploads%2F2015%2F03%2Ffacebook-logo.jpg&title=A+Nice+question+about+Facebook&quote=Does+anyone+know+if+there+have+been+recent+changes+which+could+have+suddenly+stopped+this+from+working%3F&description=Apparently%2C+the+accepted+answer+is+not+correct.

Deneyin!

Yaptığım bir araç , URL’leri Facebook'ta özel parametrelerle paylaşmayı kolaylaştırır. sharer.php linkinizi oluşturmak için kullanabilirsiniz, sadece düğmeye basın ve açılan URL'den URL'yi kopyalayın.

91

Sorununuz, bir nedenden ötürü uygulamanızın mümkün olmadığını söylediğiniz gibi OpenGraph markörlerinin eksikliğinden kaynaklanıyor.

Sizin için tek çözüm PHP Facebook API'sini kullanmaktır.

  1. Öncelikle uygulamayı facebook hesabınızda oluşturmalısınız.
  2. Uygulamayı oluştururken kodunuz için iki önemli veriniz olacak:

    YOUR_APP_ID 
    YOUR_APP_SECRET
    
  3. Facebook'u indirin PHP SDK - burada .

  4. Sitenizdeki paylaşım içeriği için bu kodla başlayabilirsiniz:

    <?php
      // Remember to copy files from the SDK's src/ directory to a
      // directory in your application on the server, such as php-sdk/
      require_once('php-sdk/facebook.php');
    
      $config = array(
        'appId' => 'YOUR_APP_ID',
        'secret' => 'YOUR_APP_SECRET',
        'allowSignedRequest' => false // optional but should be set to false for non-canvas apps
      );
    
      $facebook = new Facebook($config);
      $user_id = $facebook->getUser();
    ?>
    <html>
      <head></head>
      <body>
    
      <?php
        if($user_id) {
    
          // We have a user ID, so probably a logged in user.
          // If not, we'll get an exception, which we handle below.
          try {
            $ret_obj = $facebook->api('/me/feed', 'POST',
                                        array(
                                          'link' => 'www.example.com',
                                          'message' => 'Posting with the PHP SDK!'
                                     ));
            echo '<pre>Post ID: ' . $ret_obj['id'] . '</pre>';
    
            // Give the user a logout link 
            echo '<br /><a href="' . $facebook->getLogoutUrl() . '">logout</a>';
          } catch(FacebookApiException $e) {
            // If the user is logged out, you can have a 
            // user ID even though the access token is invalid.
            // In this case, we'll get an exception, so we'll
            // just ask the user to login again here.
            $login_url = $facebook->getLoginUrl( array(
                           'scope' => 'publish_stream'
                           )); 
            echo 'Please <a href="' . $login_url . '">login.</a>';
            error_log($e->getType());
            error_log($e->getMessage());
          }   
        } else {
    
          // No user, so print a link for the user to login
          // To post to a user's wall, we need publish_stream permission
          // We'll use the current URL as the redirect_uri, so we don't
          // need to specify it here.
          $login_url = $facebook->getLoginUrl( array( 'scope' => 'publish_stream' ) );
          echo 'Please <a href="' . $login_url . '">login.</a>';
    
        } 
    
      ?>      
    
      </body> 
    </html>
    

Facebook Geliştiricileri sitesinde daha fazla örnek bulabilirsiniz:

https://developers.facebook.com/docs/reference/php

3
Joseph Collins

Kullanılan URL’yi inceliyorum:

https://www.facebook.com/sharer/sharer.php?s=100&p[title]=EXAMPLE&p[summary]=EXAMPLE&p[url]=EXAMPLE&p[images][0]=EXAMPLE

ve bu farklılıkları görün:

  1. Paylaşan URL aynı değil.
  2. Dizeler farklı sıradadır. (Bu etkileyip etkilemediğini bilmiyorum).

Bu URL dizesini kullanıyorum:

http://www.facebook.com/sharer.php?s=100&p[url]=http://www.example.com/&p[images][0]=/images/image.jpg&p[title]=Title&p[summary]=Summary

"Title" ve "summary" bölümünde, bunun gibi php işlevini urlencode(); kullanıyorum:

<?php echo urlencode($detail->title); ?>

Ve benim için iyi çalışıyor.

1
Joseph Collins