2011-01-06 22 views
-1

まあ、私はFacebookのウォールに投稿しようとしていますが、私はこのエラーを取得:致命的なエラー:未定義のメソッドはstdClassに呼び出し:: stream_publish()

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

私がしようとしていますコードは、この

です
<?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

あなたはどのライブラリを使用していますか?実際の質問はどこですか? – Ivan

答えて

0

エラーメッセージに書かれているように、$ facebook-> api_clientには "stream_publish"というメソッドはありません。 Facebookの接続に使用しているライブラリのマニュアルを参照してください。

0

$facebook->api_clientがオブジェクトでない場合は、その行:

$facebook->api_client->session_key = FB_SESSION; 

は、PHPは黙っタイプstdClassのオブジェクトへ$facebook->api_clientをキャストになります。後で、コードの下に、あなたが得ているFatal error: Call to undefined method stdClass::stream_publish()が発生します。

変更してみてください:それは投げない場合、

... 

$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; 

... 

そして:api_clientは(オブジェクトか、多分、ない)偽のときのためにキャッチする...

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

... 

をエラーの場合は、$facebook->api_clientがnullである理由を調べる必要があります。

関連する問題