1. How do I install Participad?

    1. Participad requires a separate Etherpad Lite installation. Visit the Etherpad Lite Github repo to download EPL and for information on installation. Note: Participad does not yet support cross-domain installations, so make sure that your Etherpad Lite instance is accessible under the same domain name as your WordPress installation (eg, http://example.com/wp/ and http://example.com/etherpad/).
    2. Install and activate Participad. You can download Participad manually from the wordpress.org plugin repository, or you can use the auto-installer in your WordPress Dashboard (Plugins > Add New).
    3. When Participad is activated, you’ll see a notice telling you that the plugin is not yet set up properly. Follow the provided link (or navigate to Settings > Participad) to visit the Participad setup screen.
    4. Enter your Etherpad Lite URL and API key. The API key can be found in the file APIKEY.txt in your Etherpad Lite installation directory – it is created automatically when EPL is installed.
    5. Alternatively, you can set up your EPL connection by defining the PARTICIPAD_API_ENDPOINT and PARTICIPAD_API_KEY constants in your wp-config.php file. This will disable manual entry of these values on the plugin admin panel, and is an ideal solution for configuring WordPress Multisite installations.

  2. Where does my content live? In Etherpad Lite or WordPress?

    Both. Participad works by displaying an EPL iframe inside of WordPress. So when you’re writing using Participad, your content is actually being saved to EPL. However, content is regularly saved back to your WordPress installation. All Participad modules have autosave functionality, which syncs the content of an EPL document back to the corresponding WordPress post at two-minute intervals (you can override this value with the PARTICIPAD_AUTOSAVE_INTERVAL constant). Moreover, whenever you manually save your work through the WordPress interface – such as by clicking Update on the Edit Post screen, or by clicking Exit Edit Mode on the front end – content is synced from EPL back to WP.

  3. How is my content protected?

    Participad uses Etherpad’s “group model” to protect your WordPress content. In a nutshell, each EPL document is placed into an EPL group, so that the only users able to edit that EPL document are those for whom there exists a valid group session. Participad manages the creation of group sessions, so that they’re only created when the WP user really ought to have edit access to the post in question. That means that permissions work just like you’d expect them to: Authors can’t edit each other’s posts while Editors can, etc. Even if you leave your EPL installation publicly accessible (so that new Pads can be created outside of Participad), documents created by Participad are only available to users with the correct session cookies.

  4. Is Participad compatible with WordPress Multisite/Network Mode?

    Yes! Participad was designed to work seamlessly on WPMS. If you plan to use a single Etherpad Lite installation for all the sites on your network, you should consider setting your EPL configuration using the PARTICIPAD_API_ENDPOINT and PARTICIPAD_API_KEY constants; if defined in your wp-config.php file, manual configuration will be disabled in the Dashboard, and config details will automatically be provided for each site where Participad is activated.

  5. What about BuddyPress?

    If you’ve got BuddyPress installed on your network, Participad will record Notepad edits in your Activity stream. More BP features are planned for the future.

39 thoughts on “FAQs

  1. Pingback: Introducing Participad: Realtime collaboration for WordPress | Teleogistic

  2. Scott

    Hi Boone,
    I got etherpad running the participad installed but I am getting a “You do not have permission to access this pad” .

    Not clear as to what I am missing ep is working with direct access.


    1. boone Post author

      Scott – Is the Etherpad URL on the same domain as the WP installation? Cross-domain cookies are not yet supported (I had trouble with them during development, so set it aside for future enhancement).

      1. Scott

        Yah both installed on localhost wordpress.dev

        [30-Oct-2012 22:06:39] PHP Warning: setcookie() expects parameter 2 to be string, object given in /wordpress/wp-content/plugins/participad/includes/class-participad-user.php on line 69
        [30-Oct-2012 22:06:39] PHP Warning: Cannot modify header information – headers already sent by (output started at /wordpress/wp-content/plugins/participad/includes/class-participad-user.php:69) in /wordpress/wp-includes/pluggable.php on line 881

        1. boone Post author

          Looks like I have some bad error checking there. $this->ep_session_id is probably a WP_Error object, which means that the EP session cookie creation process is failing for some reason. Could you put var_dump( $this->ep_session_id ); somewhere in there (maybe around line 65 in that file) and see what the error object says?

  3. Keith

    Same problem here, after a var_dump($ep_session);

    object(WP_Error)#279 (2) { [“errors”]=> array(1) { [“create_ep_group_session”]=> array(1) { [0]=> string(43) “Could not create the Etherpad Lite session.” } } [“error_data”]=> array(0) { } }

    1. boone Post author

      Thanks, Keith. Could you (or Scott) try examining the contents of the Etherpad exception being thrown? In participad/includes/class-participad-post.php, it’s around line 256 – before returning the WP_Error, try var_dump( $e ); to see what Etherpad is saying.

      1. Keith

        object(InvalidArgumentException)#281 (6) { [“message:protected”]=> string(23) “authorID does not exist” [“string:private”]=> string(0) “” [“code:protected”]=> int(0) [“file:protected”]=> string(89) “wp-content/plugins/participad/lib/etherpad-lite-client.php” [“line:protected”]=> int(69) [“trace:private”]=> array(9) { [0]=> array(6) { [“file”]=> string(97) “wp-content/plugins/participad/includes/class-participad-client.php” [“line”]=> int(63) [“function”]=> string(12) “handleResult” [“class”]=> string(18) “EtherpadLiteClient” [“type”]=> string(2) “->” [“args”]=> array(1) { [0]=> object(stdClass)#278 (3) { [“code”]=> int(1) [“message”]=> string(23) “authorID does not exist” [“data”]=> NULL } } } [1]=> array(6) { [“file”]=> string(89) “wp-content/plugins/participad/lib/etherpad-lite-client.php” [“line”]=> int(146) [“function”]=> string(4) “call” [“class”]=> string(17) “Participad_Client” [“type”]=> string(2) “->” [“args”]=> array(2) { [0]=> string(13) “createSession” [1]=> array(3) { [“groupID”]=> string(18) “g.hICcZ1HlNvBmcrF5” [“authorID”]=> string(18) “a.nAKr2EhlDIGabzAt” [“validUntil”]=> int(4505249260) } } } [2]=> array(6) { [“file”]=> string(95) “wp-content/plugins/participad/includes/class-participad-post.php” [“line”]=> int(252) [“function”]=> string(13) “createSession” [“class”]=> string(18) “EtherpadLiteClient” [“type”]=> string(2) “->” [“args”]=> array(3) { [0]=> string(18) “g.hICcZ1HlNvBmcrF5” [1]=> string(18) “a.nAKr2EhlDIGabzAt” [2]=> int(4505249260) } } [3]=> array(6) { [“file”]=> string(95) “wp-content/plugins/participad/includes/class-participad-user.php” [“line”]=> int(59) [“function”]=> string(23) “create_ep_group_session” [“class”]=> string(15) “Participad_Post” [“type”]=> string(2) “::” [“args”]=> array(2) { [0]=> &string(18) “g.hICcZ1HlNvBmcrF5” [1]=> &string(18) “a.nAKr2EhlDIGabzAt” } } [4]=> array(6) { [“file”]=> string(102) “wp-content/plugins/participad/includes/class-participad-integration.php” [“line”]=> int(206) [“function”]=> string(14) “create_session” [“class”]=> string(15) “Participad_User” [“type”]=> string(2) “->” [“args”]=> array(2) { [0]=> &int(584) [1]=> &string(18) “g.hICcZ1HlNvBmcrF5” } } [5]=> array(6) { [“file”]=> string(102) “wp-content/plugins/participad/includes/class-participad-integration.php” [“line”]=> int(120) [“function”]=> string(14) “create_session” [“class”]=> string(22) “Participad_Integration” [“type”]=> string(2) “->” [“args”]=> array(0) { } } [6]=> array(6) { [“file”]=> string(53) “wp-includes/plugin.php” [“line”]=> int(403) [“function”]=> string(5) “start” [“class”]=> string(22) “Participad_Integration” [“type”]=> string(2) “->” [“args”]=> array(1) { [0]=> &string(0) “” } } [7]=> array(4) { [“file”]=> string(49) “wp-admin/admin.php” [“line”]=> int(111) [“function”]=> string(9) “do_action” [“args”]=> array(2) { [0]=> &array(2) { [0]=> &object(Participad_Integration_Dashboard)#230 (12) { [“localize_script”]=> array(1) { [“dummy_post_ID”]=> int(584) } [“id”]=> string(9) “dashboard” [“loggedin_user”]=> object(Participad_User)#257 (3) { [“wp_user_id”]=> string(1) “1” [“ep_user_id”]=> string(18) “a.nAKr2EhlDIGabzAt” [“ep_session_id”]=> string(0) “” } [“wp_user_id”]=> int(1) [“ep_user_id”]=> string(18) “a.nAKr2EhlDIGabzAt” [“wp_post_id”]=> int(584) [“ep_post_id”]=> NULL [“ep_post_group_id”]=> string(18) “g.hICcZ1HlNvBmcrF5” [“ep_iframe_url”]=> NULL [“module_path”]=> string(79) “wp-content/plugins/participad/modules/dashboard/” [“module_url”]=> string(72) “http://blog.drablab.org/wp-content/plugins/participad/modules/dashboard/” [“current_post”]=> object(Participad_Post)#258 (5) { [“wp_post”]=> NULL [“wp_post_id”]=> string(3) “584” [“ep_post_id”]=> string(32) “ce64ec0af01f41b74015e6ac0b2e2fb7” [“ep_post_group_id”]=> string(18) “g.hICcZ1HlNvBmcrF5” [“ep_post_id_concat”]=> string(51) “g.hICcZ1HlNvBmcrF5$ce64ec0af01f41b74015e6ac0b2e2fb7” } } [1]=> string(5) “start” } [1]=> &array(1) { [0]=> string(0) “” } } } [8]=> array(4) { [“file”]=> string(52) “wp-admin/post-new.php” [“line”]=> int(10) [“args”]=> array(1) { [0]=> string(49) “wp-admin/admin.php” } [“function”]=> string(12) “require_once” } } }

        1. boone Post author

          Thanks, Keith. This is odd – clearly an EPL user *was* created for your WP user (you have a valid-looking EPL user ID stored), but EPL is telling you that there’s no such user.

          Is it possible that you have gone through some testing using more than one EPL instance, or did you have to set up Participad more than once? It’s possible that you set up Participad once, at which point Participad created an EPL user for your WP user and stored the EPL user id in the WP database, and then you somehow reset the EPL data, so that EPL is no longer aware of a user by that id. Try deleting the ep_user_id key from wp_usermeta, or try with a brand new WP user to see if it fixes the issue.

          Are you able to use Etherpad Lite normally through *its own* interface? How about when you require group sessions (in settings.json)?

          1. Keith

            Yes, The Etherpad Lite install works by itself. Unless I toggle the require group session to true than I can’t create new pads.

            I also tried enabling the user/admin EPL accounts (which I didn’t have before), but that did not seem to help.

            It’s possible I had run the plugin with the EPL using the dirty database before switching over to mysql.

          2. Keith

            Actually – I got a new error when I had the user/admin enabled. In the WP post editor:
            An error occured
            The error was reported with the following id: ‘TgjPv0n2UIujsIcrfYtv’

            Please send this error message to us:
            ‘ErrorId: TgjPv0n2UIujsIcrfYtv
            UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4
            Uncaught TypeError: Cannot call method ‘setChannelState’ of null in avascripts/lib/ep_etherpad-lite/static/js/pad.js?callback=require.define at line 3′

          3. boone Post author

            Awesome! In the short term, I’ll make a FAQ for this problem. In the long term, I’ll write some better logic in the plugin to account for these cases. Thanks, Keith.

    1. boone Post author

      Scott – Try wiping out all of the items in wp_usermeta and wp_postmeta whose meta_key starts with ‘ep_’ (ep_user_id, ep_post_id, and so on).

    1. boone Post author

      Trip – Probably not, on the current setup. (It’ll work on a subfolder of the same domain, however.) I’ll work on it when I look at broader cookie issues.

  4. Susana Gallardo

    Hi folks,
    I just blew up my wordpress blog (fatal error) by installing the participad plugin, and entering the embed url of my newly installed etherpad instead of the actual url. yeah, i’m bright that way.

    I don’t suppose you can advise me on how to fix it per the following error message? I am an html/css person who can occasionally do a bit of php editing….any advice appreciated. (I am also a professor with sixty students who need to access the blog)

    My gut is to ftp in and remove the plugin entirely and start over, but I thought I’d ask before doing anything….

    Fatal error: Uncaught exception ‘InvalidArgumentException’ with message ‘[] is not a valid URL’ in /home/slg/prof.chicanas.com/5Q/wp-content/plugins/participad/lib/etherpad-lite-client.php:21

    Stack trace: #0 /home/slg/prof.chicanas.com/5Q/wp-content/plugins/participad/includes/class-participad-client.php(30): EtherpadLiteClient->__construct(‘H0aaxhIcsxSFLAo…’, ‘<iframe name=\'…') #1 /home/slg/prof.chicanas.com/5Q/wp-content/plugins/participad/includes/functions.php(13): Participad_Client::instance() #2 /home/slg/prof.chicanas.com/5Q/wp-content/plugins/participad/includes/functions.php(71): participad_client() #3 /home/slg/prof.chicanas.com/5Q/wp-content/plugins/participad/includes/class-participad-integration.php(93): participad_is_installed_correctly() #4 /home/slg/prof.chicanas.com/5Q/wp-content/plugins/participad/modules/notepad/notepad.ph in /home/slg/prof.chicanas.com/5Q/wp-content/plugins/participad/lib/etherpad-lite-client.php on line 21

    1. boone Post author

      Susana – You can bring your blog back to life by doing the following:

      – Use your FTP client to access your blog’s files
      – Navigate to wp-content/plugins
      – Rename the ‘participad’ folder (to, say, ‘participad-backup’)
      – Visit your site. WP should automatically decactivate Participad.

  5. Francis

    Anybody had the You do not have permission to access this pad problem?

    [2012-11-16 12:08:32.179] [INFO] http – 307, GET /javascripts/lib/ep_etherpad-lite/static/js/colorutils?callback=require.define
    [2012-11-16 12:08:32.263] [INFO] http – 200, GET /pluginfw/plugin-definitions.json
    [2012-11-16 12:08:32.264] [INFO] http – 200, GET /locales.ini
    [2012-11-16 12:08:32.310] [INFO] http – 200, GET /locales/en.ini
    [2012-11-16 12:08:32.373] [INFO] http – 200, GET /locales/fr.ini
    [2012-11-16 12:08:32.451] [INFO] socket.io – handshake authorized ‘9NkY2pl0UMJMDG1gBoV7’
    [2012-11-16 12:08:32.557] [WARN] message – Authentication try failed:{“component”:”pad”,”type”:”CLIENT_READY”,”padId”:”g.YF5eue3v32SwBU9M$145a6b651c808eb758be8956f1b605c5″,”sessionID”:null,”password”:null,”token”:”t.1uaLoyK6JE6DP2ac16gy”,”protocolVersion”:2}
    [2012-11-16 12:08:32.558] [INFO] message – to 9NkY2pl0UMJMDG1gBoV7: {“accessStatus”:”deny”}
    [2012-11-16 12:08:32.653] [INFO] ueberDB – Flushed 1 values

    I really need help on this one!

    I installed etherpad with mysql database: ether pad
    wordpress is on another mysql DB

    Do I have to do other things in the settings.json of Etherpad-Lite?


    1. boone Post author

      The problem is that no sessionID is being passed. That suggests that either the cookie is not being set properly by Participad, or that Etherpad is not able to read the cookie. Look in your browser’s cookies for one keyed sessionID; if it’s not there, it’s the first problem, if it’s there, it’s the second.

  6. Mohit

    Hi All,
    I am using etherpad lite with Drupal 7.
    I have installed etherpad and working properly in Mozilla firefox and Safari
    But when i try to access same thing using Google Chrome and Internet Explorer at that time Etherpad gives me the error “You do not have permission to access this pad”

  7. mklehr

    For anyone still wondering what’s the cause of this “You don’t have permission to access this pad” problem:
    I’m pretty sure Etherpad lite denied API access to all requests if you set “requireAuthentication” to true in the settings file. So, if you can resolve this problem on your instance by setting that option to false, there’s a simple solution: Update Eterpad lite! 😉

    Happy new year to y’all, btw 🙂

  8. chau

    Could you tell me how to fix the error it ‘s the same error as Francis and the other
    “You do not have permission to access this pad” .

    [WARN] message – Authentication try failed:{“component”:”pad”,”type”:”CLIENT_READY”,”padId”:”g.8hWljuluQhHsDe9o$2da82fa998e2a0c4bb952081787b4aa8″,”sessionID”:null,”password”:null,”token”:”t.uJ6CfasN93ir3UVG22nq”,”protocolVersion”:2}

    Thanks in advance

  9. Tobias

    Hi there,

    I setup Etherpad Lite, WordPress 3.5.1 and Participad 1.0.1
    Here’s the problem: I installed my Etherpad instance at /home/etherpad/etherpad-lite, which is far outside from the web root folder. Within the plugin settings I have to choose the web address.
    Therefore the plugin searches for the /api directory within the web root folder.
    Is it possible to change that? Any solutions?

  10. Mike

    I’m having trouble. Have Participad activated on my WordPress installation on Bluehost.
    Got the predicted message regarding my need for Etherpad.
    Downloaded Etherpad lite and then uploaded it to Bluehost in same folder as the wordpress install that has the Participad plugin.
    But can’t locate the referred-to APIKEY.txt file.
    McLear over at Etherpad forum says it will be created upon launch. But I have no idea how to launch etherpad and just can’t find any directions that a smart, but totally amateur, person like me can read and follow clearly.


Leave a Reply

Your email address will not be published.