Tem o Facebook sharer.o php mudou para não aceitar mais parâmetros detalhados?

temos estado a abrir um popup de partilha (através da janela.Abrir) com o URL como

https://www.facebook.com/sharer/sharer.php?s=100&p[title]=EXAMPLE&p[summary]=EXAMPLE&p[url]=EXAMPLE&p[images][0]=EXAMPLE 
E até algum ponto desconhecido no último mês, estava tudo bem.

o que está a acontecer agora é; a janela de contexto aparece e inclui correctamente o Título, Descrição, Imagem e URL fornecidos pelos parâmetros de texto da consulta, mas quando o post é enviado, falta o título, descrição e imagem da parede resultante no Facebook, embora ainda esteja ligado ao correcto ENDERECO.

Alguém sabe se houve mudanças recentes que poderiam ter impedido isto de funcionar?

antecipar algumas respostas comuns:

  • "sharer.o URL do php estava desactualizado" - o uso parecia Continuar e ele parece que o consenso foi que foi em grande parte considerado como ficar por aqui - não vi nenhuma indicação específica de que devia ter deixado de trabalhar de repente - podia ter deixado passar alguma coisa .

  • "Usar o SDK JavaScript / these Meta tags Og " - não é possível no meu específico situação, confia em mim ... Posso explicar, se quiseres, mas ... não é relevante.

  • "Use a janela de alimentação" - não é adequada devido à falta de suporte para publicação com anexos nas páginas FB

Author: tdous, 2014-01-06

4 answers

O Facebook já não suporta parâmetros personalizados em sharer.php

O sharer não aceitará mais parâmetros personalizados e o facebook aceitará. puxe a informação que está a ser mostrada na antevisão da mesma forma da maneira que apareceria no facebook como um post do URL og meta etiqueta.

Usar a janela / fontes em vez do sharer.php

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

Resposta oficial da equipa fb

 99
Author: jsnjack, 2014-06-24 11:41:18
A partir de 18 de julho de 2017, o Facebook decidiu ignorar os parâmetros personalizados estabelecidos pelos usuários. Esta escolha bloqueia muitas das possibilidades oferecidas por esta resposta e também quebra botões usados em vários sites.

Os parâmetros quote Ainda funcionam.


Alguém sabe se houve mudanças recentes que poderiam ter impedido isto de funcionar?

Os parâmetros mudaram. A resposta actualmente aceite Estados:

O Facebook já não suporta parâmetros personalizados em sharer.php

Mas isto não está completamente correcto. bem, talvez eles não suportamou endossam eles, mas Os parâmetros personalizados podem ser usados Se você souber os nomes corretos. Estes incluem:

  • URL (claro) → u
  • imagem personalizada → picture
  • título personalizado → title
  • citação personalizada → quote
  • descrição personalizada → description
  • legenda (também conhecido por nome do sítio Web) → caption

Por exemplo, Pode partilhar esta questão com o seguinte URL:

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.

Experimenta!

Eu construí uma ferramenta que torna mais fácil compartilhar URLs no Facebook com parâmetros personalizados. Você pode usá-lo para gerar o seu link sharer.php, Basta carregar no botão e copiar o URL da página que abre.

 84
Author: Andrea Lazzarotto, 2017-07-28 13:31:48

Seu problema é causado pela falta de marcadores OpenGraph, como você diz que não é possível que você implemente por alguma razão.

Para ti, a única solução é usar a API do PHP Facebook.

  1. Primeiro você deve criar o aplicativo em sua conta no facebook.
  2. Ao criar a aplicação, você terá dois dados chave para o seu código:

    YOUR_APP_ID 
    YOUR_APP_SECRET
    
  3. Obter o PHP SDK do Facebook Aqui.

  4. Você pode começar com este código para conteúdo de partilha a partir do seu site:

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

Você pode encontrar mais exemplos no site de desenvolvedores do Facebook:

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

 3
Author: Joseph Collins, 2014-03-12 15:24:22

Revejo o seu url em uso:

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

E veja estas diferenças:

  1. o URL do sharer não é o mesmo.
  2. As cordas estão em ordem diferente. (Não sei se isto afecta ).

Uso Este texto URL:

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

Na secção" título "e" resumo", uso a função php urlencode(); Assim:

<?php echo urlencode($detail->title); ?>
E a trabalhar bem para mim.
 1
Author: Joseph Collins, 2014-02-28 01:43:47