Bonjour,

Je suis sur une application FaceBook Connect.

Ce que je désire faire est très basique: je souhaite qu'à partir de mon site web, un utilisateur puisse récupérer la liste de ses amis: leur image, leur nom, leur genre (homme/femme) et leur date d'anniversaire.

Pour ce faire, j'utilise le SDK Javascript: si il n'a pas de sessions fb ouverte, un boutton fb connect se présente à lui sinon, toute la liste de ses amis apparait.

J'ai utilisé les fonction FB.Facebook.apiClient.friends_get et FB.Facebook.apiClient.users_getInfo mais ça ne fonctionne pas...

Voici mon code:

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
 
function DisplayFriends()
{
	var widget_div = document.getElementById("friends");
 
	FB.ensureInit(function () 
	{
		var api = FB.Facebook.apiClient;
			
		api.friends_get(null, function(result, ex1) 
		{
			if (ex1 != null)
			{
				alert("ERROR: " + ex1);	
			}
				
			if(result != null)
			{					
				var nbfriends = result.length;
					
				if (nbfriends > 0) 
				{						
					var body   = "";
					var header = "";
					var footer = "";
						
					header    += "<table border='0' cellpadding='0' cellspacing='0' width='90%' style='font-size:9pt;'>"
						+ "<thead align='center' valign='middle'><tr>"
						+ "<th width='10%'></th>"
						+ "<th width='25%'>Image</th>"
						+ "<th width='25%'>Nom</th>"
						+ "<th width='20%'>Genre</th>"
						+ "<th width='20%'>Age</th>"
						+ "</tr></thead>"
						+ "<tbody align='center'>";
						
												
					for (var i=0; i<nbfriends; i++) 
					{				
							
						api.users_getInfo(result[i], ['sex,birthday'], function(result2, ex2)
						{						   
							if (ex2 != null)	alert("ERROR: " + ex2);	
					
                            alert(result2[0]['sex']+" "+ result2[0]['birthday']);
							
							body += 	
								+ '<tr>'
								+ '<td width="10%" align="center" valign="middle"><input type="checkbox" /></td>'
														+ '<td width="25%" align="center" valign="middle" style="padding-top:5px;">'			
								+ '<fb:profile-pic size="square" uid="'+ result[i]+ '" facebook-logo="false" linked="false"></fb:profile-pic>'
								+ '</td>'
										+ '<td width="25%" align="center" valign="middle" style="padding-top:5px;">'			
								+ '<fb:name uid="'+ result[i]+ '" linked="false"></fb:name>'
								+ '</td>'
								+ '<td width="20%" align="center" valign="middle" style="padding-top:5px;">'			
								+ result2[0]['sex']
								+ '</td>'
								+ '<td width="20%" align="center" valign="middle" style="padding-top:5px;">'			
								+ result2[0]['birthday']
								+ '</td>'
								+ '</tr>';
										
						});
					}
										
					footer  += "</tbody><tfoot align='center'  bgcolor='#3B5998'><tr><td height='10' colspan='5'></td></tr></tfoot>";
					footer  += "</table>";
					footer  += "</center>";
					
		
					
					widget_div.innerHTML = header + body + footer;
					
					FB.XFBML.Host.parseDomElement(widget_div);	
				}
			}
				
		});
	});
}

Le problème de ce code est que, les alertes fonctionnent bien en me retournant correctement le genre et la date d'anniversaire pour chaque incrémentation de la boucle mais qu'au final, ma table ne contenait que le header et le footer et le body reste vide (en fait je me suis rendu compte que le code à l'interieur de api.users_getInfo(result[i], ['sex,birthday'], function(result2, ex2) ne se faisait qu'une fois la boucle terminée!!)

Merci de votre aide