我想将drupal节点和博客导入facebook墙。我应该将哪个模块用于此功能?
答案 0 :(得分:1)
您可能对Drupal for Facebook模块感兴趣。
这套模块和主题将Drupal变成了开发Facebook应用程序的平台。这允许您在Facebook中嵌入您的内容和功能,或允许Facebook用户通过Facebook Connect进入您的网站。
借助Drupal for Facebook,您可以在Facebook App中利用Drupal的所有功能。如果你已经在Drupal中有内容,你可以在Facebook上公开它。
Drupal for Facebook的理念是,Drupal中已经内置的功能应该用于创建Facebook应用程序。在可能的情况下,我们使用Drupal的用户管理,权限方案,块,视图等来实现Facebook App。经验丰富的Drupal用户会发现构建Facebook应用程序非常简单。虽然刚接触Drupal的Facebook开发人员可能希望花一些时间在Drupal.org上学习最佳实践。
Drupal for Facebook包含几个子模块。启用您需要的那些。例如,如果您需要社交插件,请仅启用fb.module。对于Facebook Connect,启用fb_connect.module; Canvas Pages,fb_canvas.module; 墙贴和状态更新,fb_stream.module ;等等...
答案 1 :(得分:0)
尝试将此帖子张贴在您的Facebook页面墙上。
实现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页面。
希望它有效......穆罕默德。