-2

我想要一个具有字段“FB URL”的内容类型,该字段获取 Facebook 事件的 URL,并且当人们加载这种类型的节点时,通过 FB API 检索 facebook 事件的内容。无法从数据库中检索它,因为内容必须与 facebook 上的内容保持一致。

到目前为止,我创建了一个模块,node_load()用于在加载节点时添加内容,但我不知道从 FBOauth 模块调用什么函数来执行此操作......在此之前,我尝试了一个简单的file_get_contents(); 在 FB 应用程序的访问令牌过期并且不知道如何动态获取新令牌之前,这种方法运行良好。

我想我迷路了,所以有人可以指导我如何做到这一点吗?

非常感谢!

4

1 回答 1

0

好的,我发现(虽然我不明白 -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);
        }
    }
}
于 2013-03-15T11:56:54.663 回答