2011-01-06 2 views
-1

Eh bien, je suis en train de poster sur le mur facebook mais je reçois cette erreur:Erreur fatale: Appel à la méthode non définie stdClass :: stream_publish()

Fatal error: Call to undefined method stdClass::stream_publish()

Le code que je suis en train est ce

<?php 

define('FB_APIKEY', '<Your Api Key>'); 
define('FB_SECRET', '<Secret>'); 
define('FB_SESSION', '<Session>'); 

require_once('facebook.php'); 

echo "post on wall"; 
echo "<br/>"; 

try { 
$facebook = new Facebook(FB_APIKEY, FB_SECRET); 
$facebook->api_client->session_key = FB_SESSION; 
$facebook->api_client->expires = 0; 
$message = ''; 

$attachment = array(
'name' => $_POST["name"], 
'href' => $_POST["href"], 
'description' => $_POST["description"], 
'media' => array(array('type' => 'image', 
'src' => $_POST["src"], 
'href' => $_POST["href"]))); 

$action_links = array(array('text' => 'Visit Us', 'href' => '<link to some place here>')); 

$attachment = json_encode($attachment); 
$action_links = json_encode($action_links); 

$target_id = "<Target Id>"; 
$session_key = FB_SESSION; 

if($facebook->api_client->stream_publish($message, $attachment, $action_links, null, $target_id)) { 
echo "Added on FB Wall"; 
} 
} catch(Exception $e) { 
echo $e . "<br />"; 
} 
?> 
+0

Quelle bibliothèque utilisez-vous? Où est la question réelle? – Ivan

Répondre

0

Eh bien, comme il est écrit dans le message d'erreur, il n'y a pas de méthode "stream_publish" dans $ facebook-> api_client. Consultez le manuel de la bibliothèque que vous utilisez pour vous connecter à Facebook.

0

Si $facebook->api_client n'est pas un objet, la ligne:

$facebook->api_client->session_key = FB_SESSION; 

Est-ce que faire php jeter silencieusement $facebook->api_client à un objet de type stdClass. Lequel, plus tard dans le code, provoquera le Fatal error: Call to undefined method stdClass::stream_publish() que vous obtenez.

Essayez de changer: ...

$facebook = new Facebook(FB_APIKEY, FB_SECRET); 
$facebook->api_client->session_key = FB_SESSION; 
$facebook->api_client->expires = 0; 

... 

pour attraper quand api_client est faux (ou, peut-être, pas un objet):

... 

$facebook = new Facebook(FB_APIKEY, FB_SECRET); 

if (!($facebook->api_client)) { 
    //throw error 
    echo 'Need to sort this bit out'; 
    exit; 
} 

$facebook->api_client->session_key = FB_SESSION; 
$facebook->api_client->expires = 0; 

... 

Et puis, si cela ne jette un erreur, vous devez rechercher pourquoi $facebook->api_client est null.

Questions connexes