Bonjour, pour un client j'ai réalisé un quizz qui est à intégrer dans une appli fb via iframe.

J'ai fait le test sur mon serveur perso, l'appli fonctionne niquel depuis facebook, or lorsque je test sur le serveur du client, facebook ne détecte pas le clique du like qui permet de passer de la page nonfan au quizz. C'est a dire que je reste sur la page nonfan même en étant fan.

J'utilise ce code pour détecter le j'aime :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 
<script src="http://connect.facebook.net/fr_FR/all.js"></script>
 
<script type="text/javascript">
  FB.init({
    appId  : '336985543020556',
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true  // parse XFBML
  });
</script>
 
 
<?php
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, '-_', '+/'));
}
 
$data = parse_signed_request($_REQUEST['signed_request'], '********************************');
 
 
if(!$data['page']['liked']){ 
 
	include ('tabnon.php');
	// contenu pour les NON FAN
	}
 
 
else{
 
include ('taboui.php');
   // contenu pour les FANS
 
}
?>
Je ne sais pas d'ou provient l'erreur puisque le contenu hébergé sur mon serveur et sur le serveur du client est exactement le meme, à part l'appID et la clef secrète puisque j'ai crée deux applis pour comparer.

Lorsque j'entre l'url dans la barre d'adressequi correspond à la page nonfan qui fait le test de savoir si l'user est fan ou non, il me sort
'Notice: Undefined index: signed_request in /homez.57/mondomaine/www/fb/bienvenue/index.php on line 62

Notice: Undefined offset: 1 in /homez.57/mondomaine/www/fb/bienvenue/index.php on line 37'

Ce qui est normal puisque n'y accédant pas par l'iframe, le php ne détecte alors pas les variables délivrés par facebook, si je ne m'abuse ?

Cependant lorsque j'accède de la même manière à la page nonfan sur le site du client et bien ces lignes d'erreurs n'apparaissent pas, et c'est ce qui me laisse penser que cela viendrais donc du serveur, qui n’interpréterait pas correctement le php.

Je tiens à préciser que je suis chez ovh et que le client également.

Une âme charitable pour m'aider à résoudre ce problème ?