Erreur PHP application facebook
Fermé
Petit Raptor
-
22 déc. 2009 à 07:19
Petit Raptor Messages postés 187 Date d'inscription mardi 22 décembre 2009 Statut Membre Dernière intervention 16 mars 2010 - 27 déc. 2009 à 21:22
Petit Raptor Messages postés 187 Date d'inscription mardi 22 décembre 2009 Statut Membre Dernière intervention 16 mars 2010 - 27 déc. 2009 à 21:22
A voir également:
- Erreur PHP application facebook
- Application mobile - Guide
- Erreur 0x80070643 - Accueil - Windows
- Facebook lite gratuit - iam - Télécharger - Messagerie
- Story facebook - Guide
- Application pour voir qui regarde mon profil facebook gratuit - Guide
17 réponses
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
23 déc. 2009 à 20:32
23 déc. 2009 à 20:32
Je n'ai pas lu complètement ton blabla mais voilà un lien qui pourra t'aider dans la création de ton app :
http://www.waanser.com/php/api-facebook/97-developper-une-application-facebook-via-son-api.html
http://www.waanser.com/php/api-facebook/97-developper-une-application-facebook-via-son-api.html
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
22 déc. 2009 à 15:02
22 déc. 2009 à 15:02
Tu inclus nul part la librairie de Facebook (à l'aide d'un include, require, ...) et tu instancie nul part l'objet $facebook.
http://wiki.developers.facebook.com/index.php/PHP
http://wiki.developers.facebook.com/index.php/PHP
Petit Raptor
Messages postés
187
Date d'inscription
mardi 22 décembre 2009
Statut
Membre
Dernière intervention
16 mars 2010
1
23 déc. 2009 à 04:07
23 déc. 2009 à 04:07
Oui enfin le seul problème étant que cette page: lib.php est une page donné par la librairie Facebook :s
Je ne vois pas trop pourquoi ils auraient oublier d'inclure la librairie.
Concretement, que dois-je faire ?
Parce-que je suis seulement en train d'apprendre le PHP alors le language spécial facebook, je ne comprend pas trop.
Je sais faire un include, mais comme tu dit: "instancie", je ne sais pas du tout de quoi tu parle.
Je ne vois pas trop pourquoi ils auraient oublier d'inclure la librairie.
Concretement, que dois-je faire ?
Parce-que je suis seulement en train d'apprendre le PHP alors le language spécial facebook, je ne comprend pas trop.
Je sais faire un include, mais comme tu dit: "instancie", je ne sais pas du tout de quoi tu parle.
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
23 déc. 2009 à 14:31
23 déc. 2009 à 14:31
"Je ne vois pas trop pourquoi ils auraient oublier d'inclure la librairie."
Non, c'est toi qui n'inclus pas la librairie dans ton script PHP.
"Concretement, que dois-je faire ?"
Inclure la librairie et créer l'objet $facebook, ça sera déjà une chose de faite.
"Parce-que je suis seulement en train d'apprendre le PHP alors le language spécial facebook, je ne comprend pas trop."
Le problème est la. Fini d'apprendre normalement le PHP avant de vouloir utiliser des librairies tierces. Et quand tu auras les bases en PHP, il est préférable que tu apprennes aussi la POO en PHP, ça te sera utile pour manipuler des librairies et des frameworks.
"Je sais faire un include, mais comme tu dit: "instancie", je ne sais pas du tout de quoi tu parle."
C'est en gros créer l'objet $facebook en faisant quelque-chose comme $facebook = new Facebook('api_key',...);. Tu comprendras mieux quand tu auras appris la POO.
Non, c'est toi qui n'inclus pas la librairie dans ton script PHP.
"Concretement, que dois-je faire ?"
Inclure la librairie et créer l'objet $facebook, ça sera déjà une chose de faite.
"Parce-que je suis seulement en train d'apprendre le PHP alors le language spécial facebook, je ne comprend pas trop."
Le problème est la. Fini d'apprendre normalement le PHP avant de vouloir utiliser des librairies tierces. Et quand tu auras les bases en PHP, il est préférable que tu apprennes aussi la POO en PHP, ça te sera utile pour manipuler des librairies et des frameworks.
"Je sais faire un include, mais comme tu dit: "instancie", je ne sais pas du tout de quoi tu parle."
C'est en gros créer l'objet $facebook en faisant quelque-chose comme $facebook = new Facebook('api_key',...);. Tu comprendras mieux quand tu auras appris la POO.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Petit Raptor
Messages postés
187
Date d'inscription
mardi 22 décembre 2009
Statut
Membre
Dernière intervention
16 mars 2010
1
23 déc. 2009 à 20:28
23 déc. 2009 à 20:28
Arf je me suis trompé :s
Le premier code que je vous ai donner est celui de lib.php, c'est pour cela que la librairies n'est pas incluse ^^"
Voila celui de index.php qui se trouve dans le dossier footprints et c'est quand je vais sur cette page que cela me marque le message d'erreur: Catchable fatal error: Object of class Facebook could not be converted to string in /home/exo979/www/poemes/footprints/lib.php on line 4
Voici index.php:
<?php
// the facebook client library
include_once '../php/facebook.php';
// some basic library functions
include_once 'lib.php';
// this defines some of your basic setup
include_once 'config.php';
$facebook = new Facebook($api_key, $secret);
$facebook->require_frame();
$user = $facebook->require_login();
if (isset($_POST['to'])) {
$prints_id = (int)$_POST['to'];
$prints = do_step($user, $prints_id);
} else {
if (isset($_GET['to'])) {
$prints_id = (int)$_GET['to'];
} else {
$prints_id = $user;
}
$prints = get_prints($prints_id);
}
?>
<div style="padding: 10px;">
<h2>Hi <fb:name firstnameonly="true" uid="<?=$user?>" useyou="true"/>!</h2><br/>
<a href="<?= $facebook->get_add_url() ?>">Put Footprints in your profile</a>, if you haven't already!
<form method="post" >
<?php
if ($prints_id != $user) {
echo 'Do you want to step on <fb:name uid="' . $prints_id . '"/>?';
echo '<input type="hidden" name="to" value="' . $prints_id . '"/>';
} else {
echo '<br/>Step on a friend:';
echo '<fb:friend-selector idname="to"/>';
}
?>
<input value="step" type="submit"/>
</form>
<hr/>
These are <fb:name uid="<?= $prints_id ?>" possessive="true"/> Footprints:<br/>
<?php echo render_prints($prints, 10); ?>
<div style="clear: both;"/>
</div>
et comme j'ai pu le remarquer, la librairie est incluse et l'objet $facebook est créer.
En fait si tu veux, l'application que je veux créer est pour l'instant très très simple et malgrès mes connaissances restreintes en PHP, je suis capable de pouvoir la créer.
En effet, pour le moment je veux faire une application très très simple coté fonctionnalitées et graphisme.
Cette application servira à poster des poèmes.
En gros, sur la page d'index de l'application, il y aura les poèmes des autres avec un bouton pour poster son poème.
La seule chose qui me gène et qui je pense va être plus compliquer, c'est d'arriver à choper les variables PHP qui donne les informations de profil des membres de l'application.
Bah oui, je m'explique: Je ne vais pas mettre un input en demandant au membres inscrit sur facebook de marquer son nom, son prénom etc.... non, je voudrais récupéré les information de son profil (nom, prénom, age etc....) pour pouvoir afficher que c'est Mr./Mme intel qui à poster ce poème à cette date à cette heure-ci.
Le premier code que je vous ai donner est celui de lib.php, c'est pour cela que la librairies n'est pas incluse ^^"
Voila celui de index.php qui se trouve dans le dossier footprints et c'est quand je vais sur cette page que cela me marque le message d'erreur: Catchable fatal error: Object of class Facebook could not be converted to string in /home/exo979/www/poemes/footprints/lib.php on line 4
Voici index.php:
<?php
// the facebook client library
include_once '../php/facebook.php';
// some basic library functions
include_once 'lib.php';
// this defines some of your basic setup
include_once 'config.php';
$facebook = new Facebook($api_key, $secret);
$facebook->require_frame();
$user = $facebook->require_login();
if (isset($_POST['to'])) {
$prints_id = (int)$_POST['to'];
$prints = do_step($user, $prints_id);
} else {
if (isset($_GET['to'])) {
$prints_id = (int)$_GET['to'];
} else {
$prints_id = $user;
}
$prints = get_prints($prints_id);
}
?>
<div style="padding: 10px;">
<h2>Hi <fb:name firstnameonly="true" uid="<?=$user?>" useyou="true"/>!</h2><br/>
<a href="<?= $facebook->get_add_url() ?>">Put Footprints in your profile</a>, if you haven't already!
<form method="post" >
<?php
if ($prints_id != $user) {
echo 'Do you want to step on <fb:name uid="' . $prints_id . '"/>?';
echo '<input type="hidden" name="to" value="' . $prints_id . '"/>';
} else {
echo '<br/>Step on a friend:';
echo '<fb:friend-selector idname="to"/>';
}
?>
<input value="step" type="submit"/>
</form>
<hr/>
These are <fb:name uid="<?= $prints_id ?>" possessive="true"/> Footprints:<br/>
<?php echo render_prints($prints, 10); ?>
<div style="clear: both;"/>
</div>
et comme j'ai pu le remarquer, la librairie est incluse et l'objet $facebook est créer.
En fait si tu veux, l'application que je veux créer est pour l'instant très très simple et malgrès mes connaissances restreintes en PHP, je suis capable de pouvoir la créer.
En effet, pour le moment je veux faire une application très très simple coté fonctionnalitées et graphisme.
Cette application servira à poster des poèmes.
En gros, sur la page d'index de l'application, il y aura les poèmes des autres avec un bouton pour poster son poème.
La seule chose qui me gène et qui je pense va être plus compliquer, c'est d'arriver à choper les variables PHP qui donne les informations de profil des membres de l'application.
Bah oui, je m'explique: Je ne vais pas mettre un input en demandant au membres inscrit sur facebook de marquer son nom, son prénom etc.... non, je voudrais récupéré les information de son profil (nom, prénom, age etc....) pour pouvoir afficher que c'est Mr./Mme intel qui à poster ce poème à cette date à cette heure-ci.
Petit Raptor
Messages postés
187
Date d'inscription
mardi 22 décembre 2009
Statut
Membre
Dernière intervention
16 mars 2010
1
23 déc. 2009 à 20:40
23 déc. 2009 à 20:40
Je vais voir ce lien, j'essaye en suivant minutieusement ce tuto et je te tiens au courant.
Merci beaucoup =)
Merci beaucoup =)
Petit Raptor
Messages postés
187
Date d'inscription
mardi 22 décembre 2009
Statut
Membre
Dernière intervention
16 mars 2010
1
25 déc. 2009 à 05:35
25 déc. 2009 à 05:35
Hmmm, est-ce que c'est possible qu'un hébergeur ne prenne pas en compte le FBML ?
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
25 déc. 2009 à 14:55
25 déc. 2009 à 14:55
Non, car l'hébergeur ne fait qu'héberger tes fichiers et les distribuer à quiconque les demandant.
Petit Raptor
Messages postés
187
Date d'inscription
mardi 22 décembre 2009
Statut
Membre
Dernière intervention
16 mars 2010
1
25 déc. 2009 à 19:08
25 déc. 2009 à 19:08
Oui enfin je voulais plutôt dire, désolé je me suis trompé de mot, est-ce possible que le serveur ne prennent pas en compte le FBML comme certains serveur n'ont pas activer certaines choses comme (je ne me rapelle que de la moitier du nom) ...open()
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
25 déc. 2009 à 20:10
25 déc. 2009 à 20:10
J'ai compris ce que tu voulais dire.
Le FBML est un langagé côté client, donc c'est le navigateur qui doit le prendre en charge.
Comment fait-il, puisque ce n'est pas un standard ?
La réponse est simple : le FBML est un langagé basé sur le XML, donc on peut transformer n'importe quel langage XML en XHTML à l'aide d'une feuille XSLT. Biensûr, ta page doit être en XHTML afin de l'étendre avec le FBML. Dans ce cas, "ta page" est celle sur apps.facebook.com donc tu n'as pas à te soucier de l'insertion de la feuille XSLT.
Le FBML est un langagé côté client, donc c'est le navigateur qui doit le prendre en charge.
Comment fait-il, puisque ce n'est pas un standard ?
La réponse est simple : le FBML est un langagé basé sur le XML, donc on peut transformer n'importe quel langage XML en XHTML à l'aide d'une feuille XSLT. Biensûr, ta page doit être en XHTML afin de l'étendre avec le FBML. Dans ce cas, "ta page" est celle sur apps.facebook.com donc tu n'as pas à te soucier de l'insertion de la feuille XSLT.
Petit Raptor
Messages postés
187
Date d'inscription
mardi 22 décembre 2009
Statut
Membre
Dernière intervention
16 mars 2010
1
26 déc. 2009 à 06:01
26 déc. 2009 à 06:01
Alors dans ce cas comment se fait-il qu'en suivant exactement "et j'insiste sur le exactement" le tuto que tu me propose, en arrivant à la fin de la première partie cela me donne ça:
Mes amis
Ami Inconnu 1
Identifiant : 1064231110
Ami Inconnu 2
Identifiant : 1172393373
Ami Inconnu 3
Identifiant : 1201474054
Ami Inconnu 4
Identifiant : 1293094174
Ami Inconnu 5
Identifiant : 1358974022
Mes amis
Ami Inconnu 1
Identifiant : 1064231110
Ami Inconnu 2
Identifiant : 1172393373
Ami Inconnu 3
Identifiant : 1201474054
Ami Inconnu 4
Identifiant : 1293094174
Ami Inconnu 5
Identifiant : 1358974022
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
26 déc. 2009 à 14:19
26 déc. 2009 à 14:19
Je suppose que tu as changer le le nom de tes amis à la main ?
D'abord c'est correcte.
Biensûr, ce n'est qu'un exemple pour montrer ce que l'on peut faire, à toi de faire quelque-chose d'utile.
D'abord c'est correcte.
Biensûr, ce n'est qu'un exemple pour montrer ce que l'on peut faire, à toi de faire quelque-chose d'utile.
Petit Raptor
Messages postés
187
Date d'inscription
mardi 22 décembre 2009
Statut
Membre
Dernière intervention
16 mars 2010
1
27 déc. 2009 à 13:13
27 déc. 2009 à 13:13
Changer le nom de mes amis à la main ?
Voici le code actuel:
index.php
<?php
// on se connecte à facebook
require_once 'connexion.php';
?>
<fb:header>Mes amis</fb:header>
<br/><br/>
<?php
//on récupére les 5 premiers amis de l'utilisateurs
$aFriends = $oFacebook->api_client->friends_get();
$aFriends = array_slice($aFriends, 0, 5);
// on affiche leurs informations à partir de leur identifiant
foreach ($aFriends as $iKey => $sFriend) {
echo '<h1>';
echo '<fb:if-is-friends-with-viewer uid="'.$sFriend.'">';
echo 'Ami ';
echo '<fb:else>Inconnu </fb:else>';
echo'</fb:if-is-friends-with-viewer>';
echo ($iKey+1).'</h1><br/>';
echo '<div>';
echo 'Identifiant : '.$sFriend.'<br/>';
echo '<fb:mediaheader uid="'.$sFriend.'"/>';
echo '</div>';
echo '<br/><br/>';
}
?>
connexion.php
<?php
// on charge la librairie facebook
require_once 'lib-facebook/facebook.php';
// on défini la clé et le code secret
$sAppapikey = 'mon appi key';
$sAppsecret = 'ma secret key';
// on se connecte à facebook par la creation d'un objet Facebook
$oFacebook = new Facebook($sAppapikey, $sAppsecret);
// on demande à l'utilisateur de se loguer
$sUser_id = $oFacebook->require_login();
?>
La page index devrait afficher:
http://media.waanser.com/2009/01/facebook2.png
Image prise sur le tuto que tu m'as donner.
Alors que moi, cela m'affiche que l'id du profil.
Donc j'en conclus que mon serveur ne veux pas lire le FBML mais je pense me tromper, pourtant j'ai fait exactement comme le tuto.
Voici le code actuel:
index.php
<?php
// on se connecte à facebook
require_once 'connexion.php';
?>
<fb:header>Mes amis</fb:header>
<br/><br/>
<?php
//on récupére les 5 premiers amis de l'utilisateurs
$aFriends = $oFacebook->api_client->friends_get();
$aFriends = array_slice($aFriends, 0, 5);
// on affiche leurs informations à partir de leur identifiant
foreach ($aFriends as $iKey => $sFriend) {
echo '<h1>';
echo '<fb:if-is-friends-with-viewer uid="'.$sFriend.'">';
echo 'Ami ';
echo '<fb:else>Inconnu </fb:else>';
echo'</fb:if-is-friends-with-viewer>';
echo ($iKey+1).'</h1><br/>';
echo '<div>';
echo 'Identifiant : '.$sFriend.'<br/>';
echo '<fb:mediaheader uid="'.$sFriend.'"/>';
echo '</div>';
echo '<br/><br/>';
}
?>
connexion.php
<?php
// on charge la librairie facebook
require_once 'lib-facebook/facebook.php';
// on défini la clé et le code secret
$sAppapikey = 'mon appi key';
$sAppsecret = 'ma secret key';
// on se connecte à facebook par la creation d'un objet Facebook
$oFacebook = new Facebook($sAppapikey, $sAppsecret);
// on demande à l'utilisateur de se loguer
$sUser_id = $oFacebook->require_login();
?>
La page index devrait afficher:
http://media.waanser.com/2009/01/facebook2.png
Image prise sur le tuto que tu m'as donner.
Alors que moi, cela m'affiche que l'id du profil.
Donc j'en conclus que mon serveur ne veux pas lire le FBML mais je pense me tromper, pourtant j'ai fait exactement comme le tuto.
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
27 déc. 2009 à 19:09
27 déc. 2009 à 19:09
Tu accède à ton application depuis Facebook ou depuis ton serveur ?
Petit Raptor
Messages postés
187
Date d'inscription
mardi 22 décembre 2009
Statut
Membre
Dernière intervention
16 mars 2010
1
27 déc. 2009 à 19:40
27 déc. 2009 à 19:40
Depuis facebook pourquoi ?
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 505
27 déc. 2009 à 20:13
27 déc. 2009 à 20:13
Parce que Facebook inclus une feuille permettant de transformer le FBML, et pas toi.
Ce qui est sûr, c'est que ce n'est pas à cause de ton hébergeur car il ne fait qu'envoyer les données générées.
Pour vérifier que ton script ne contienne pas d'erreur, rends-toi sur la page sans passer par Facebook et regarde le code source, tu devrais voir correctement le FBML (pas visuellement, seulement le code source).
Ce qui est sûr, c'est que ce n'est pas à cause de ton hébergeur car il ne fait qu'envoyer les données générées.
Pour vérifier que ton script ne contienne pas d'erreur, rends-toi sur la page sans passer par Facebook et regarde le code source, tu devrais voir correctement le FBML (pas visuellement, seulement le code source).
Petit Raptor
Messages postés
187
Date d'inscription
mardi 22 décembre 2009
Statut
Membre
Dernière intervention
16 mars 2010
1
27 déc. 2009 à 21:22
27 déc. 2009 à 21:22
Quand j'accède à la page index.php qui est loger sur mon serveur directement depuis mon site, cela m'affiche la même chose que quand j'y accède par facebook.
Effectivement, je vois le FBML:
<fb:header>Mes amis</fb:header>
<br/><br/>
<h1><fb:if-is-friends-with-viewer uid="1064231110">Ami <fb:else>Inconnu </fb:else></fb:if-is-friends-with-viewer>1</h1><br/><div>Identifiant : 1064231110<br/><fb:mediaheader uid="1064231110"/></div><br/><br/><h1><fb:if-is-friends-with-viewer uid="1172393373">Ami <fb:else>Inconnu </fb:else></fb:if-is-friends-with-viewer>2</h1><br/><div>Identifiant : 1172393373<br/><fb:mediaheader uid="1172393373"/></div><br/><br/><h1><fb:if-is-friends-with-viewer uid="1201474054">Ami <fb:else>Inconnu </fb:else></fb:if-is-friends-with-viewer>3</h1><br/><div>Identifiant : 1201474054<br/><fb:mediaheader uid="1201474054"/></div><br/><br/><h1><fb:if-is-friends-with-viewer uid="1237441140">Ami <fb:else>Inconnu </fb:else></fb:if-is-friends-with-viewer>4</h1><br/><div>Identifiant : 1237441140<br/><fb:mediaheader uid="1237441140"/></div><br/><br/><h1><fb:if-is-friends-with-viewer uid="1293094174">Ami <fb:else>Inconnu </fb:else></fb:if-is-friends-with-viewer>5</h1><br/><div>Identifiant : 1293094174<br/><fb:mediaheader uid="1293094174"/></div><br/><br/>
Désolé pour l'indentement mais j'avais la flemme.
Là je ne vois pas du tout de quoi ça pourrais venir :s
Effectivement, je vois le FBML:
<fb:header>Mes amis</fb:header>
<br/><br/>
<h1><fb:if-is-friends-with-viewer uid="1064231110">Ami <fb:else>Inconnu </fb:else></fb:if-is-friends-with-viewer>1</h1><br/><div>Identifiant : 1064231110<br/><fb:mediaheader uid="1064231110"/></div><br/><br/><h1><fb:if-is-friends-with-viewer uid="1172393373">Ami <fb:else>Inconnu </fb:else></fb:if-is-friends-with-viewer>2</h1><br/><div>Identifiant : 1172393373<br/><fb:mediaheader uid="1172393373"/></div><br/><br/><h1><fb:if-is-friends-with-viewer uid="1201474054">Ami <fb:else>Inconnu </fb:else></fb:if-is-friends-with-viewer>3</h1><br/><div>Identifiant : 1201474054<br/><fb:mediaheader uid="1201474054"/></div><br/><br/><h1><fb:if-is-friends-with-viewer uid="1237441140">Ami <fb:else>Inconnu </fb:else></fb:if-is-friends-with-viewer>4</h1><br/><div>Identifiant : 1237441140<br/><fb:mediaheader uid="1237441140"/></div><br/><br/><h1><fb:if-is-friends-with-viewer uid="1293094174">Ami <fb:else>Inconnu </fb:else></fb:if-is-friends-with-viewer>5</h1><br/><div>Identifiant : 1293094174<br/><fb:mediaheader uid="1293094174"/></div><br/><br/>
Désolé pour l'indentement mais j'avais la flemme.
Là je ne vois pas du tout de quoi ça pourrais venir :s