2012-02-27 2 views
0

У меня есть вкладка «посадка», которая настроена, и я установил еще одну вкладку, которую я хотел бы активировать после того, как поклонник щелкнет по значку " как ". Я искал Интернет и придумал сочетание кода JavaScript и PHP SDK, но до сих пор ничего не работало.Facebook «like» - как заставить вкладку настройки перенаправить на другую вкладку

Я предполагаю, что есть две основные проблемы:

  1. После того, как вентилятор изначально посещает сайт (они идут непосредственно на вкладку посадки) и щелкает «как» кнопку, я хотел бы IFRAME перенаправить на другую вкладку, которую я создал. Я попробовал простой переадресацию JavaScript (windows.location = "URL"), и это изменило его на URL, который я хотел, но не в Facebook iframe - очевидно, он также не вызывался нажатием как действие.

  2. Если я могу получить вышеописанную работу, следующая проблема заключается в том, что, как только кнопка нажата, я хочу, чтобы вторая вкладка всегда была по умолчанию для пользователя ... Прямо сейчас после того, как пользователь нажимает «как», он направляется на страницу стены и снова, когда посетитель возвращается на страницу, это страница стены. Если я столкнулся с проблемой №1, работающей с переадресацией, будет ли она всегда использоваться по умолчанию для этой второй вкладки или она по-прежнему будет отправлять людей на стену, когда они перейдут на страницу?

Вот код, который я нашел. И SDK JavaScript, и PHP SDK. Где я иду не так?

FB.Event.subscribe('edge.create', 
    function(response) { 
     location.href = 'URLofSecondtab'; 
    } 
); 

Приведенный выше код является то, что я сказал, это обработчик события Facebook для как в JavaScript.

<div id="fb-root"></div> 

<script type="text/javascript"> 
    window.fbAsyncInit = function() { 
     FB.init({appId: 'idOfLandingTab', status: true, cookie: true, xfbml: true}); 
     //FB.Canvas.setSize({ width: 520, height: 1500 }); 
     FB.Event.subscribe('edge.create', 
      function(response) { 
       alert('like!'); 
       // put redirect code here eg 
       window.location = "URLofSecondtab"; 
      } 
     ); 
    }; 

    //Load the SDK asynchronously 
    (function() { 
     var e = document.createElement('script'); e.async = true; 
     e.src = document.location.protocol + 
      '//connect.facebook.net/en_US/all.js'; 
     document.getElementById('fb-root').appendChild(e); 
    }()); 
</script> 

Я нашел PHP SDK и не удалось реализовать:

<?php 
    // Sample PHP code to customize the a Facebook Fan Page iFrame Application 
    // Refer to http://www.hyperarts.com/blog/customizing-facebook-iframe-application- signed_request_reveal_tab 

    require 'facebook.php'; 

    $app_id = "APP_ID_HERE"; //which app id? the landing tab or the second tab that I want  //redirected? 
    $app_secret = "APP_SECRET_HERE"; 
    $facebook = new Facebook(array(
     'appId' => $app_id, 
     'secret' => $app_secret, 
     'cookie' => true 
    )); 


    $signed_request = $facebook->getSignedRequest(); 

    $page_id = $signed_request["page"]["id"]; 
    $page_admin = $signed_request["page"]["admin"]; 
    $like_status = $signed_request["page"]["liked"]; 
    $country = $signed_request["user"]["country"]; 
    $locale = $signed_request["user"]["locale"]; 

    echo "<br>page id = $page_id"; 
    echo "<br>page admin = $page_admin"; 
    echo "<br>like status = $like_status"; 
    echo "<br>country = $country"; 
    echo "<br>locale = $locale"; 
?> 

Какие вкладки URL и идентификатор приложения требуется в каком месте? И какой код (JavaScript или PHP-код)?

ответ

0

Я думаю, ваша проблема может быть решена с этим:

How to check if a user likes my Facebook Page or URL using Facebook's API

На этой странице он имеет этот код на ответ Джейсон Siffring в:

if($signed_request = parsePageSignedRequest()) { 
    if($signed_request->page->liked) { 
     echo "This content is for Fans only!"; 
    } else { 
     echo "Please click on the Like button to view this tab!"; 
    } 
    } 

Вместо этих «Эхо вы могли бы эхо 'window.document.location.replace ("SOMEWHERE")'

0

После того, как пользователю понравится страница, она обновится, поэтому на этом этапе вы могли бы нас е ваши $ page_id вар, чтобы обнаружить, если бы пользователь понравился постранично, а затем перенаправить parnt в IFrame, в значение $ PAGE_ID будет 1, так и в теле документа вы могли бы сделать это:

<? if($page_id){ ?> 
<script>window.top.location.href = "http://www.facebook.com/FANPAGE_USERNAME?sk=app_APPID";</script> 
<? } ?> 
0

Поля для вкладок будут отключены с графиком для страниц, 30 марта

Редактировать: это если вы о себе рассказываете о страницах фан, если не всегда.

1

Если вы используете вкладку facebook страницы, то параметр будет работать как следующий (PHP):

$signed_request=$_REQUEST["signed_request"]; 
list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true); 
//to get page id use this => $data["page"]["id"] 
//to get liked or unlike page => $data["page"]["liked"] = this will return 1 if 
//liked else blank 

Подробнее: https://developers.facebook.com/docs/appsonfacebook/pagetabs/ прокрутки до конца и прочитать этот пункт => Интеграция с API-интерфейсы Facebook

Смежные вопросы