2012-07-22 123 views
2

我的网站上有一个新闻表单。在创建这条消息之后,我想在Facebook上发布它。我尝试了很多东西,但没有任何工作。这里是我的课:在我的网站上发布表格后在Facebook上发布一条消息

<?php 

class Facebook { 

    const FACEBOOK_APP_ID   = 'MY_APP_ID'; 

    const FACEBOOK_APP_SECRET  = 'MY_APP_SECRET'; 

    const FACEBOOK_ACCESS_TOKEN_URI = 'https://graph.facebook.com/oauth/access_token'; 

    const FACEBOOK_FEED_URI   = 'https://graph.facebook.com/app/feed'; 

    private function getAccessToken() { 
     $params = array(
      'client_id'  => self::FACEBOOK_APP_ID, 
      'client_secret' => self::FACEBOOK_APP_SECRET, 
      'grant_type' => 'client_credentials', 
     ); 

     $ch = curl_init(); 

     curl_setopt($ch, CURLOPT_URL, self::FACEBOOK_ACCESS_TOKEN_URI); 
     curl_setopt($ch, CURLOPT_HEADER, false); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_POST, true); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $params); 

     $data = curl_exec($ch); 

     curl_close($ch); 

     return substr($data, strpos($data, '=') + 1); 
    } 

    public function sendFeed() { 
     $params = array(
      'access_token' => $this->getAccessToken(), 
      'message' => $message, 
      'name'  => $name, 
      'link'  => $url, 
      'description' => $description, 
     ); 

     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, self::FACEBOOK_FEED_URI); 
     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, $params); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

     $data = curl_exec($ch); 

     curl_close ($ch); 

     return $data; 
    } 

} 

如果我调用该方法sendFeed()它返回下列信息:

{"id":"404322099626551_404397542952340"} 

我想提交是全成,但是当我访问我的网页在Facebook上,有没有新的饲料。我究竟做错了什么?我搜索了整整一天,无法完成工作。我感谢你的帮助。

回答

0

你在这里做什么是张贴在你的用户的饲料。您正在使用用户访问令牌。你想要使用的是一个page access token

您需要manage_pagespermission才能代表页面执行任务。

此外,您应该考虑使用官方PHP SDK,它将使访问Facebook的API更容易,并提高可读性。

+1

嘿,谢谢你的帮助。我要检查PHP SDK。 :) – anisie 2012-07-22 21:19:04

+0

文档中的所有示例或至少大部分示例都使用PHP,因此有一个参考点很好。 – Lix 2012-07-22 21:20:10

+0

谢谢,PHP SDK解决了我的问题。现在它完美地工作。 :) – anisie 2012-07-25 09:05:12

相关问题