0

我想将 drupal 节点和博客导入 facebook 墙。我应该为这个功能使用哪个模块?

4

2 回答 2

1

您可能对Drupal for Facebook模块感兴趣。

这组模块和主题将 Drupal 变成了开发 Facebook 应用程序的平台。这使您可以在 facebook 中嵌入您的内容和功能,或允许 facebook 用户通过 Facebook Connect 访问您的网站。

使用 Drupal for 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.module;墙贴和状态更新,fb_stream.module;等等...

于 2012-04-09T09:59:52.823 回答
0

尝试将此发布在您的 Facebook 页面墙上。

  1. 下载facebook php SDK

  2. 实现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 页面所做的一切。

希望它有效……穆罕默德。

于 2012-04-10T07:31:15.117 回答