我想将drupal节点和博客导入Facebook墙。我应该为此功能使用哪个模块?
您可能对 Drupal for Facebook 模块感兴趣。
这组模块和主题将Drupal变成了开发Facebook应用程序的平台。这允许您在Facebook中嵌入您的内容和功能,或允许Facebook用户通过Facebook Connect访问您的网站。
使用 Drupalfor Facebook,您可以在 Facebook 应用程序中利用 Drupal 的所有功能。如果你已经在Drupal中拥有内容,你可以在Facebook上公开它。
Drupal for Facebook 的理念是,Drupal 中已经内置的功能应该用于创建 Facebook 应用程序。在可能的情况下,我们使用Drupal的用户管理,权限方案,块,视图等来实现Facebook应用程序。 有经验的Drupal用户会发现构建Facebook应用程序非常简单。而刚接触Drupal的Facebook开发人员可能希望花一些时间 Drupal.org 学习最佳实践。
Drupal for Facebook 包含几个子模块。仅启用所需的那些。例如,如果您需要社交插件,只需启用 fb.module。对于 Facebook Connect,请启用 fb_connect.module;画布页面,fb_canvas.模块;墙上的帖子和状态更新,fb_stream.模块;等等...
试试这个发布在你的Facebook页面墙上。
-
下载脸书 PHP SDK
-
实现 hook_node_submit() 钩子,并使用以下代码。
function YOUR_MODULE_node_submit($node, $form, &$form_state) { $node_types = array("article", "blog"); if(in_array($node->type, $node_types) && $form_state['clicked_button']['#id'] == "edit-submit") { $message = $form_state['values']['title']; $description = $form_state['values']['body']; $picture = $form['YOUR_IMAGE_FIELD']['und']['0']['#file']->uri; send_to_facebook($message, $description, $picture); } } function facebook_oauth_init($facebook_app_id, $facebook_app_secret, $cookie = false) { $facebook = new Facebook(array("appId" => $facebook_app_id, "secret" => $facebook_app_secret, "cookie" => $cookie)); return $facebook; } function send_to_facebook($msg, $desc, $pic) { if(!class_exists('Facebook')) require_once('facebook/facebook.php'); $fb_app_id = "YOUR_APP_ID"; $fb_app_secret = "YOUR_APP_SECRET"; $fb_user_id = "THE_USER_ID_OF_THE_ADMIN_FOR_THIS_PAGE"; $fb_page_id = "YOUR_PAGE_ID"; $fb_access_token = "YOUR_ACCESS_TOKEN"; $fb_reirect_uri = ""; $access_token_2 = ''; foreach($accounts as $acc) { if($fb_page_id == $acc['id']) { $access_token_2 = $acc['access_token']; break; } } $fb_post_array = array( 'access_token' => $access_token_2, 'message' => $msg, 'picture' => render(file_create_url($pic)), 'description' => $desc, 'link' => $fb_reirect_uri, ); if($picture == NULL || $picture == "") unset($fb_post_array['picture']); $fb_now = $facebook->api("/" . $fb_page_id . "/feed", "post", $fb_post_array); }
这就是我为将节点发布到我的Facebook页面所做的一切。
希望它有效...穆罕默德。