2017-05-29 3 views
-1

私は、ユーザーが特定のページを共有するたびに、別のタイトル、イメージ、説明を表示するマーケティングキャンペーンをしたい。問題は、Facebookがこのデータを24時間キャッシュしていることです。どのようにFacebookのオープングラフ変更イメージとタイトルをすべてのシェアで

Facebook APIを使用してCurlをFacebook Debuggerに送信して、HTMLが読み込まれる前に強制的にリフレッシュしようとしましたが、成功しませんでした。 https://gist.github.com/FrostyX/81d58222d1e835e24013

<?php 
    require_once('FacebookDebugger.php'); 
    $fb = new FacebookDebugger(); 
    $fb->reload('http://example.com/'); // this page 
?> 
<html> 
<head> 
<?php 
    $var = array( 
    "first" => array(
       "title" => "First test", 
       "image" => "https://example.com/1.jpg" 
      ), 
    "second" => array(
       "title" => "Second test", 
       "image" => "https://example.com/2.jpg" 
      ), 
    "third" => array(
       "title" => "Third test", 
       "image" => "https://example.com/3.jpg" 
      ), 
); 

    $section = array_rand($var); // choose a random item on the array above 
?> 
<meta name="viewport" content="initial-scale=1, maximum-scale=1"> 
<meta name="twitter:card" value="summary"> 
<meta property="og:title" content="<?php echo $var[$section]['title']; ?>" /> 
<meta property="og:type" content="article" /> 
<meta property="og:url" content="http://example.com" /> 
<meta property="og:image" content="<?php echo $var[$section]['image']; ?>" /> 

私は既にそれをやっているいくつかのWebページを見ました。どうすればこれを達成できますか?

例:

https://developers.facebook.com/tools/debug/sharing/?q=marvelfly.com https://developers.facebook.com/tools/debug/sharing/?q=f-u-t-b-o-l.com

+0

あなたは、なぜ投票ダウン指定する気だろう? –

+0

これは頻繁に尋ねられる質問で、おそらくあなたがdownvotedした理由です。検索とyoullはかなりの答えを見つける。しかし、一意のURLに基​​づいてFBキャッシュをリフレッシュするには、URLにランダムなクエリ文字列を追加するだけです。サイト上で共有ボタンをクリックするたびに、URLにランダムな文字列を追加するJavaScriptを書くことができます。あなたのユーザーが自分自身でURLを貼り付けるのであれば、これを行う方法はありません。乾杯! –

+0

@JonChurch、このウェブサイトをデバッグする:f-u-t-b-o-l.com –

答えて

0

私はクーロンでそれをやりました。

HTML:

<?php 
    $var = array( 
    "um" => array(
       "titulo" => "Produto 1", 
       "image" => "http://tudosobrecachorros.com.br/wp-content/uploads/cachorros-pequenos.jpg" 
      ), 
    "dois" => array(
       "titulo" => "Produto 2", 
       "image" => "http://tudosobrecachorros.com.br/wp-content/uploads/precos-de-cachorro.png" 
      ), 
    "tres" => array(
       "titulo" => "Produto 3", 
       "image" => "http://tudosobrecachorros.com.br/wp-content/uploads/2013/09/nomes-para-cachorros.jpeg" 
      ), 
); 

    $section = array_rand($var); //here yoy get random first of array(green or red or yellow) 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=utf-8"> 
<meta charset="utf-8"> 
<meta name="viewport" content="initial-scale=1, maximum-scale=1"> 
<meta name="twitter:card" value="summary"> 
<meta property="og:title" content="<?php echo $var[$section]['titulo']; ?>" /> 
<meta property="og:type" content="article" /> 
<meta property="og:url" content="http://YOUR-URL-HERE.COM/" /> 
<meta property="og:image" content="<?php echo $var[$section]['image']; ?>" /> 
<meta property="og:description" content="Somente um teste"/> 
<script src="https://code.jquery.com/jquery-1.7.1.min.js" integrity="sha256-iBcUE/x23aI6syuqF7EeT/+JFBxjPs5zeFJEXxumwb0=" crossorigin="anonymous"></script> 
<title>Somente um teste</title> 
</head> 
<body> 
</body> 
</html> 

Refresh.php(クーロンに数秒ごとに発射する必要があります)

<?php 
    $url = 'https://graph.facebook.com'; 
    $fields = array(
       'id'=>urlencode('http://YOUR-URL-HERE.COM'), 
       'scrape'=>urlencode(true) 
      ); 

    //url-ify the data for the POST 
    $fields_string = ''; 
    foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
    $fields_string = rtrim($fields_string,'&'); 

    //echo $fields_string;exit; 

    //open connection 
    $ch = curl_init(); 

    //set the url, number of POST vars, POST data 
    curl_setopt($ch,CURLOPT_URL,$url); 
    curl_setopt($ch,CURLOPT_POST,count($fields)); 
    curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string); 

    //execute post 
    $result = curl_exec($ch); 
    print $result; 
?> 

のcrontab -e

* * * * * for i in {0..59}; do curl http://YOUR-URL-HERE.com/refresh.php && sleep 10; done; 
+0

こんにちは!あなたはこれを解決することができますか?私はcronの最小時間は1分間違いだと思いますか? –

関連する問題