2010-09-11 17 views
4

我试过下面的代码无法正常工作Facebook的API的墙后在PHP

$attachment = array('message' => 'some meesgae', 'name' => 'This is my demo Facebook application!', 'caption' => "Caption of the Post", 'link' => 'http://mylink.com', 'description' => 'this is a description', 'picture' => 'http://mysite.com/pic.gif', 'actions' => array(array('name' => 'Get Search',  'link' => 'http://www.google.com'))); 


$result = $facebook->api('/me/feed/','post',$attachment); 

而且我给出的扩展权限 “publish_stream”

$loginUrl = $facebook->getLoginUrl(array('req_perms' => 'email,user_birthday,status_update,publish_stream')); 
+1

请界定:不工作。 – Iznogood 2010-09-11 19:24:03

+0

获取OAuthException:(#1)发生未知错误 错误 – Elankeeran 2010-09-11 19:48:33

回答

1

您需要JSON编码附件:

$attachment = json_encode($attachment);

此外,图形API不支持action_links,只有支持以下参数:

message  The message 
picture  If available, a link to the picture included with this post 
link   The link attached to this post 
name   The name of the link 
caption  The caption of the link (appears beneath the link name) 
description A description of the link (appears beneath the link caption) 
source  If available, the source link attached to this post (for example, a flash or video file) 
+0

需要附加更多图片近5个朋友图片在墙上 – Elankeeran 2010-09-13 18:07:08

+0

对不起,我不太明白? – BeRecursive 2010-09-14 08:05:01

2

BeRecursive是对有关操作环节,但是$ Facebook的API函数做的JSON编码为你,你也可以发送“CB”,这是一个回调函数。

0

截至今天,这里是Facebook已经张贴在http://developers.facebook.com/docs/reference/php/facebook-api/

<? 
    // Remember to copy files from the SDK's src/ directory to a 
    // directory in your application on the server, such as php-sdk/ 
    require_once('php-sdk/facebook.php'); 

    $config = array(
    'appId' => 'YOUR_APP_ID', 
    'secret' => 'YOUR_APP_SECRET', 
); 

    $facebook = new Facebook($config); 
    $user_id = $facebook->getUser(); 
?> 
<html> 
    <head></head> 
    <body> 

    <? 
    if($user_id) { 

     // We have a user ID, so probably a logged in user. 
     // If not, we'll get an exception, which we handle below. 
     try { 
     $ret_obj = $facebook->api('/me/feed', 'POST', 
            array(
             'link' => 'www.example.com', 
             'message' => 'Posting with the PHP SDK!' 
           )); 
     echo '<pre>Post ID: ' . $ret_obj['id'] . '</pre>'; 

     } catch(FacebookApiException $e) { 
     // If the user is logged out, you can have a 
     // user ID even though the access token is invalid. 
     // In this case, we'll get an exception, so we'll 
     // just ask the user to login again here. 
     $login_url = $facebook->getLoginUrl(array(
         'scope' => 'publish_stream' 
         )); 
     echo 'Please <a href="' . $login_url . '">login.</a>'; 
     error_log($e->getType()); 
     error_log($e->getMessage()); 
     } 
     // Give the user a logout link 
     echo '<br /><a href="' . $facebook->getLogoutUrl() . '">logout</a>'; 
    } else { 

     // No user, so print a link for the user to login 
     // To post to a user's wall, we need publish_stream permission 
     // We'll use the current URL as the redirect_uri, so we don't 
     // need to specify it here. 
     $login_url = $facebook->getLoginUrl(array('scope' => 'publish_stream')); 
     echo 'Please <a href="' . $login_url . '">login.</a>'; 

    } 

    ?>  

    </body> 
</html>