2012-11-28 141 views
1

我需要你的帮助,因为我认为我已经达到了我的技能限制。 我正在开发一个代码,使用图形API从Facebook获取用户数据并将其存储到MYSQL数据库中。 到目前为止,我已经能够检索和存储所有我想要的东西,除了喜欢。不能从facebook图API获取喜欢

下面的代码:

function getUserData() { 
     $fb_cookie = $this->getCookie(); 
     if($fb_cookie) { 
      $url = 'https://graph.facebook.com/me?access_token='.$this->getAccessToken(); 
      $data = json_decode($this->getDataFromUrl($url)); 
      $fb['id'] = $data->id; 
      $fb['first_name'] = $data->first_name; 
      $fb['last_name'] = $data->last_name; 
      $fb['email'] = $data->email; 
      $fb['likes'] = $data->likes; 
      $fb['hometown'] = $data->hometown->name; 
      //tokens 
      $fb['token'] = $fb_cookie['access_token']; 
      $fb['token_expires'] = $fb_cookie['expires']; 
      return $fb; 
     } 
    } 

虽然我有令牌中的权限 “user_likes”。仍然无法存储或检索数据以将其保存到MYSQL中。

function update_members($criteria=array()) { 
    $fb_user_id = $criteria['fb_user_id']; 
     $fb_first_name = $criteria['fb_first_name']; 
    $fb_last_name = $criteria['fb_last_name']; 
    $fb_email = $criteria['fb_email']; 
    $fb_likes = $criteria['fb_likes']; 
    $fb_hometown = $criteria['fb_hometown']; 

     } 

      $sql = "INSERT INTO ".$GLOBALS['db_table']['members']." 
      (fb_user_id, first_name, last_name, fb_email, fb_likes, hometown) 
      VALUES ('$fb_user_id', '$fb_first_name', '$fb_last_name', '$fb_email', '$fb_likes', '$fb_hometown')"; 
      $u1 = new MySqlTable(); 
      $u1->executeQuery($sql); 

到目为为我已经能够存储所有的数据,但喜欢。 在此先感谢帮助

回答

1

/me调用不包含喜欢。

你havta调用/me/likes返回是这样的:

{ "data": [ 
     { 
     "name": "Hunger Games", 
     "category": "Book", 
     "id": "114531238562971", 
     "created_time": "2012-11-28T03:55:27+0000" 
     }, 
     { 
     "name": "CivicRush", 
     "category": "Software", 
     "id": "160319707426901", 
     "created_time": "2012-11-27T01:53:40+0000" 
     }, 
     ... 
     ] 
    } 

请记住,在表中单列不会容纳所有的喜欢,除非你想逗号分隔它们或它们存储在json中。您需要另一个表member_likesuser_id,page_id,name等,他们喜欢的每一页是该表中的一行

+0

感谢提示汤米。我应该为这些喜欢制作另一个功能吗?或者我可以修改当前的功能而不会搞乱其他数据字段? –

+0

我无法确定,因为idk您的应用程序设计,但它看起来像'getUserData'是处理访问令牌的类的一部分。所以可能在这个功能。在这种情况下,$ fb ['likes']将成为一个数组 –

相关问题