2013-03-15 6 views
-2

Я хочу, чтобы тип содержимого имел поле «URL-адрес FB», в котором был указан URL-адрес события Facebook, и когда люди загружают узел этого типа, содержимое события facebook извлекается через FB API. Он не может быть извлечен из базы данных, потому что контент должен быть в курсе того, что находится на facebook.Получите контент Facebook от node_load()

До сих пор я создал модуль с node_load(), чтобы добавить контент, пока узел загружен, но я не знаю, какую функцию вызывать из модуля FBOauth, чтобы сделать это ... До этого я пробовал с простым file_get_contents(); которые хорошо работали до тех пор, пока токен доступа из приложения FB не истек и не знал, как получить новый динамически.

Я думаю, что я заблудился, так может ли кто-нибудь вести меня по поводу того, как это сделать?

Большое спасибо!

ответ

0

Ok я нашел (я не понимаю -1, хотя, вопрос, направленный знать, был ли я на правильном пути, чтобы сделать это):

function fb_event_crawler_node_load($nodes, $types) { 
    foreach ($nodes as $node) { 
     if ($node->type=="event"){ 
      $fb_url = $node->field_event_url['und'][0]['value']; 
      $url = parse_url($fb_url); 
      if (!$url['host'] == 'www.facebook.com'){ 
       echo t('This is not a Facebook URL'); 
      } 

      $path_exploded = explode("/", $url['path']); 
      if (!$path_exploded[1] == 'events'){ 
       echo t("This is not a Facebook event page!"); 
      } 

      $fb_event_id=$path_exploded[2]; 

       // dpm($path_exploded); 


      $app_id = isset($app_id) ? $app_id : variable_get('fboauth_id', ''); 
      $app_secret = isset($app_secret) ? $app_secret : variable_get('fboauth_secret', ''); 
      $app_token_url = "https://graph.facebook.com/oauth/access_token?" 
      . "client_id=" . $app_id 
      . "&client_secret=" . $app_secret 
      . "&grant_type=client_credentials"; 

      $response = file_get_contents($app_token_url); 
      $params = null; 
      parse_str($response, $params); 
      $access_token=$params['access_token']; 

       //echo($params['access_token']); 

      $fbquery = fboauth_graph_query($fb_event_id."/", $access_token); 

      dpm($fbquery); 
     } 
    } 
} 
Смежные вопросы