Autor Zpráva
VeeKey92
Profil
Ahoj, seděl jsem nad tím do noci a vůbec nevim, jak docílit toho, aby když člověk příjde do aplikace na facebooku to zobrazilo tu tabulku s požadavky aplikace a až potom ji to zobrazilo. Jedná se mi o zjištění přátel uživatele. Dám sem kód, který mám zobrazen na stránce jako iframe, což funguje. Podotknu, že seznam přátel mi to zobrazí jen mě, jakožto administrátorovi, když se na aplikaci podívám od jiného uživatele, tak to ID's nezíská.

Otázkou je, jak udělat zobrazení login formuláře s potvrzením práv a potom si nějak zapamatovat, že je přihlášený.

Opravdu potřebuji jen seznam přátel, nic jiného.

   
<body onload="FB.Canvas.setSize({width: 800, height: 1132})">
  <div id="fb-root">
  </div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/cs_CZ/all.js#xfbml=1&appId=554523704576014";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>    
<?php                     
  $app_secret="xxx";
  $data = parse_signed_request($_REQUEST['signed_request'], $app_secret);
  $page_data=$data['page'];
  function parse_signed_request($signed_request, $secret) {
    list($encoded_sig, $payload) = explode('.', $signed_request, 2);
    // decode the data
    $sig = base64_url_decode($encoded_sig);
    $data = json_decode(base64_url_decode($payload), true);
    if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
      error_log('Unknown algorithm. Expected HMAC-SHA256');
      return null;
    }
    // check sig
    $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
    if ($sig !== $expected_sig) {
      error_log('Bad Signed JSON signature!');
      return null;
    }
    return $data;
  }
  function base64_url_decode($input) {
    return base64_decode(strtr($input, '-_', '+/'));
  }
    if($page_data['liked'] == "1"){  ?>
  <div id="hasJavaScript">
    <div id="container">
      <div class="container" >
        <div class="inner">  
          <div class="text1">
            <div style="text-align:center;">
              <div id="step1"> 
                <button class="btn btn-warning" type="button">Krok 1
                </button> Pozvěte přátele do této soutěže MAGNETIC WARM UP. 
                <div id="share2"> 
                  <input type="button" class="btn btn-primary" onclick="sendRequestToRecipients(); return false;"  value="Poslat přátelům pozvánku" />
                </div>  
              </div>   
              <br>
            </div>
          </div>
<? 
include_once 'src/facebook.php';
// Create our Application instance.
// Get your application id and secret from Facebook to fill these in
$facebook = new Facebook(array(
  'appId' => 'xxx',
  'secret' => 'xxx',
  'cookie' => true,
  
)); 
  $app_id = "xxx";  
  $app_secret  = "xxx";
$app_token_url = "https://graph.facebook.com/oauth/access_token?"
        . "client_id=" . $app_id
        . "&client_secret=" . $app_secret 
        . "&grant_type=client_credentials";
        $response = file_get_contents($app_token_url);
        $params = null;
    parse_str($response, $params);
  
      
      $graph_url = "https://graph.facebook.com/app?access_token=" 
        . $params['access_token'];
        echo $graph_url; 
        
    $app_details = json_decode(file_get_contents($graph_url), true);
$fbUser = $facebook->getUser();
if ($fbUser) { 
  try { 
  $fbUserProfile = $facebook->api('/me'); // Get User
  $friends = $facebook->api('/me/friends?limit=50'); // Get Friends
  // Bonus: Get info from Coca-colas page. Requires no access token as public.
  // $cocacola = $facebook->api('/cocacola'); 
  } catch (FacebookApiException $e) { 
  error_log($e); 
  $fbUser = null; 
  } 
} else {
   // There's no active session, let's generate one
    $login_url = $facebook->getLoginUrl(); 
    // Extra permissions can be requested as follows:
    //$login_url = $facebook->getLoginUrl(array('req_perms' => 'email, user_location')); 
    header("Location: ".$login_url);  
}
    echo "<input type=\"text\" value=\"";
        foreach ($friends["data"] as $value) {
            echo ''.$value["id"].','; 
        }
  echo "\" name=\"user_ids\" />" ;    
  
  
          ?>
        </div>                
      </div>      
<script> 
      FB.init({
        appId  : '554523704576014',
        frictionlessRequests: true
      })
      
function sendRequestToRecipients() {
        var user_ids = document.getElementsByName("user_ids")[0].value;
        FB.ui({method: 'apprequests',
          message: 'Vyhraj dva lupeny na MAGNETIC FESTIVAL! Více uvnitř',
          max_recipients: '50',
          to: user_ids
        }, function (response) {
                    if (response && response.to) {
 
            document.getElementById('step1').style.display = 'none';  
             document.getElementById('reserved2').style.display = 'block';   
                         document.getElementById('step4').style.display = 'none';
                    } else {
 
            alert("Pokud nebudete sdílet aplikaci, nemůžete se účastnit soutěže.");
 
                    }
                });
            }   
    </script>     
    </div>
  </div>     
  <? }else{ ?> 
<script type="text/javascript">
 $(document).ready(function()
    $('iframe').each(function()
           var url = $(this).attr("src");
            var char = "?";
          if(url.indexOf("?") != -1)
                  var char = "&";
           
            $(this).attr("src",url+char+"wmode=transparent");
    );
); 
</script> 

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: