2010-05-17 123 views
3

在PHP中,我试图使用图表api发布状态到我们的Facebook粉丝页面,尽管下面的facebook给出的信息,下面的代码似乎并没有更新状态。通过Facebook的图表发布状态api

这是代码;

$xPost['access_token'] = "{key}"; 
$xPost['message'] = "Posting a message test."; 

$ch = curl_init('https://graph.facebook.com/{page_id}/feed'); 
curl_setopt($ch, CURLOPT_VERBOSE, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 1); 
curl_setopt($ch, CURLOPT_TIMEOUT, 120); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $xPost); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); 
curl_setopt($ch, CURLOPT_CAINFO, NULL); 
curl_setopt($ch, CURLOPT_CAPATH, NULL); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); 

$result = curl_exec($ch); 

有没有人知道为什么这段代码不工作? access_token是正确的。

+0

什么打印'$ result'显示? – ceejayoz 2010-05-17 16:23:31

+0

$结果为空 – 2010-05-17 16:27:18

+1

您的意思是使用'$ xPost ['access_token'] =“{key}”;' 而不是'$ xPost ['access_token'] =“{$ key}”;' – Jayrox 2010-06-02 23:19:01

回答

0

它似乎“CURLOPT_SSL_VERIFYPEER”应设置为0;

e.g. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
3
$url = "https://graph.facebook.com/ID_HERE/feed"; 
    $ch = curl_init(); 
    $attachment = array( 'access_token' => 'your token',       
         'name'   => "Title", 
         'link'   => "www.google.com", 
         'description' => 'description here', 
        ); 

    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment); 
    $result= curl_exec($ch); 

    curl_close ($ch); 
+1

只是另一个快速的问题。上述命令返回一些值,如“{”id“:”1347466624_1603672123512“}”。有什么办法可以禁用这个输出吗? – ericbae 2010-09-20 04:46:33

+1

我知道这是在2010年发布的,但如果有人用同一个问题解决了这个问题,[答案在这里](http://stackoverflow.com/a/1918394/1337431) – 2012-04-27 10:49:22

0

要张贴在墙上的照片的相册照片,你需要知道这张专辑的专辑ID(AID),并把它添加到这样 附件我离开我的代码:

$url = "https://graph.facebook.com/" . $this->getPageId() . "/photos"; 
    $attachment = array(
     'access_token' => $this->getAccessToken(), 
     'source' => '@' . $source, 
     'aid' => $aid, 
     'message' => $message, 
    ); 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment); 
    ob_start(); 
    curl_exec($ch); 
    $this->setjsonResult(ob_get_contents()); 
    ob_end_clean(); 
    curl_close($ch);