How to Install or Update a Plugin in Mibew

The recently released Mibew 2 introduces a powerful plugin framework which makes it possible to expand Mibew’s functionality in a myriad of ways only limited by the imagination of third party developers. With events and hooks, developers can expand the live chat service by providing richer client-side experiences, or even backend functionality such as shopping cart or ticketing system integrations. Given that Mibew is a self-hosted solution, website admins will be responsible for acquiring these plugins and installing it on their chat servers.

This guide shows how to install a plugin, using the Wurrd client interface plugin and its dependency as an example. The section for updating a plugin is at the bottom of the page. Wurrd is an app that provides a native interface on top of Mibew for operators to interact with website visitors.

 

Videos

Video on how to install the plugin in English

Thanks to @nayib for this video in Spanish. For plugin installation and activation, to go 26:25

 

Prerequisites

  1. Install Mibew 2.1 or above
  2. Download the Wurrd plugin files:
    • Wurrd Authentication Plugin
    • Wurrd Client Interface Plugin
  3. Sample config.yml file.

 

Installation Steps

  • Extract the Wurrd Authentication zip file.
  • Copy the files to the <mibew installation>/plugins folder. Once you are done, your directory structure should look like figure this:

Screen Shot 2015-10-12 at 8.31.12 PM

  • Edit your config.yml file. (Note: Some plugins require that some properties be supplied before they can be initialized. Look at the documentation of the plugin for such information. The Wurrd Auth plugin requires that a client_id be provided)

 

Scenario 1: Installing the first plugin that requires properties.

If this is the first plugin you are installing that requires properties, the plugins section will look like this.

# Plugins
plugins: []

Modify it to pass the properties that are required. For the Wurrd Auth plugin, the plugins section should look like this. Note that the number of spaces before each line is important.

# Plugins
plugins:
    "Wurrd:AuthAPI":
        client_id: TEST_CLIENT_ID

 

Scenario 2: Adding to a previous plugin that requires properties.

Here there was another plugin that requires properties. You are adding a new plugin entry for its properties. The plugin section should look lie this

# Plugins
plugins:
    "Acme:BouncingBall":
        color: Green
        radius: 3
    "Wurrd:AuthAPI":
        client_id: TEST_CLIENT_ID 

  • Login to the Mibew admin panel and navigate to the plugins configuration page. If the Mibew admin panel is blank, there was an issue when modifying the config.yml file. This is most likely because of indentation of each line wasn’t properly followed.
  • Once on the plugin config page, you will see the plugin with a link to enable the plugin. Click on the link
  • Upon success it should say “Working”
  • If it says “Not initialized” then the config.yml plugin properties were not set properly

Screen Shot 2015-10-12 at 8.46.41 PM

At this stage, your plugin has been successfully installed and it should provide the added functionality to your website.

If you are following these instructions to install the plugins for the Wurrd app, follow the same steps above for to install the Wurrd Client Interface plugin.

  • Wurrd Client Interface does not require any plugin properties, so you wouldn’t be modifying the config.yml file.
  • This plugin depends on the Wurrd Auth API plugin, so you must install that one first before installing this.

Once complete, your plugins configuration page should look like this

Screen Shot 2015-10-12 at 8.50.23 PM

 

  • The last step is to clear your cache. If in your config.yml file you are set to use the filesystem for your cache, delete the stash folder in /cache. There are some instances when even after a successful installation of the plugin, some of its components don’t work because the cache has not been refreshed. This bug describes the issue.

 

Updating a Plugin

For demonstration purposes let’s say we are upgrading the Wurrd Client Interface plugin from version 1.0.2 to 1.0.3

  • Download and extract the latest version of the plugin
  • On your server, make a copy of the old version of the plugin if you need to go back to it. i.e <mibew installation>/plugins/Wurrd/Mibew/Plugin/ClientInterface. Do not make a copy inside the Plugin folder e.g. ClientInterface.backup. Place the copy in outside of <Mibew root> because Mibew scans the Plugin folder for plugins and the backup will cause an error.
  • Copy the entire directory structure to the <mibew installation>/plugins folder
  • Login to the Mibew admin panel and navigate to the plugins configuration page.
  • Once on the plugin config page, the plugin status will say “needs update”, with a link to update the plugin. Click on the link
  • Upon success it should say “Working”
  • The last step is to clear your cache. If in your config.yml file you are set to use the filesystem for your cache, delete the stash folder in /cache. There is a bug in the Mibew core where after an update the cache is not refreshed.

 

Test your installation

We have put together a little script to test your plugin installation located at http://wurrdapp.com/diagnostics/testwurrd.php.

We do not save your account credentials, but if you are the paranoid type you can get the script (testwurrd.php) from GitHub and run it from your web server.

If the plugin install only works with the “Force use of POST” option, it means your server blocks other HTTP verbs like PUT and DELETE (Issue 3). To workaround this, add the following to the plugins section of your config.yml:

"Wurrd:ClientInterface":
    use_http_post: true

Sometimes it may be necessary for us to test/debug your server from our test devices. To provide the best support, please be prepared to provide us with access to a test Mibew server. In extreme cases, we have also requested ftp and db access to the test Mibew server. We sometimes have to do this given that Mibew is a self-hosted solution and every environment is slightly different.

 

Other resources

The Mibew documentation also gives instructions on how to install and update a plugin. Check it out if the steps here are not clear.

Install: http://docs.mibew.org/plugins/installation.html

Update: http://docs.mibew.org/plugins/update.html

18 Comments

Leave a Reply to Moataz ElHawary Cancel reply

  • Olá meu servidor esta desta forma, igualzinho, porém o client no Android não conecta, fica exibindo mensagem unknown error: code = 501 alguém pode me ajudar?

    Celso Silva Reply
  • Where do we find the client_id, that is referenced in the sample config code above?

    Sherri Reply
    • Hello Sherri, the client_id config has been removed as of AuthAPI version 0.1.3. The plugin can be installed and used without modifying the plugin config section.

      Eyong Nsoesie Reply
  • hello!

    Plugin “Wurrd:AuthAPI” cannot be enabled.

    How to do?

    config.yml:

    A timezone to use. Leave this value empty to use the default timezone from the
    # system settings. For the details about available timezones see
    # http://php.net/manual/en/timezones.php
    timezone: “”

    # Plugins
    plugins:
    “Wurrd:AuthAPI”:
    client_id: TEST_CLIENT_ID

    ## Exapmle of plugins configuration
    # plugins:
    # “VendorName:PluginName”:
    # weight: 100
    # some_configurable_value: value
    # “VendorName:AnotherPluginName”:
    # very_important_value: “$3.50”

    zuoyi Reply
  • Thank you, I saw it again,Is not related to the server rewrite rules?you see:
    location / {
    rewrite ^/install/(.*)$ /install.php?$1 last;
    rewrite ^/index/(.*)$ /index.php?$1 last;
    }

    yes? thank you very mach!

    zuoyi Reply
      • Hello,

        I haven’t used Nginx before but I don’t think that should matter given that Mibew core already works with your setup. There should be error messages in your php error log. If you are using shared hosting you may find this in a file like “error_log” at the root of your mibew installation. If you are using your own server setup (which I think is what you have with LNMP), you should look for something like php.log in the logs directory. On there you should find information as to why enabling the plugin is failing.

        Let’s continue this over email. Send me email at info@wurrdapp.com

        Eyong Nsoesie Reply
  • Hello WurrdApp team,
    I have successfully installed the two plugins and they are working (Plugins Page : mibew/operator/plugin) , login from the WurddApp is working and the operator appears online (Operators page : mibew/operator/operator). Now i have a problem that although that the wurrdApp operator appears online the server appears offline for the visitors and in the (Home page : mibew/operator)
    i have tried the demo and it works fine and the button switch to online after login with wurrdApp .
    Am i missing any settings that cause this issue ?

    Moataz ElHawary Reply
    • BTW, i have updated the two plugins with versions
      Wurrd Authentication API plugin 0.1.4
      Wurrd Client Interface plugin 1.0.4

      And , i have tested my installation with http://wurrdapp.com/diagnostics/testwurrd.php

      Force use of POST: unchecked
      API Version: 1004
      Use POST flag from chat server: false

      Operator: mobileOpp

      Start login testing…
      Login success

      Start check for updates testing…
      Check for updates success

      Start logout testing…
      Logout success
      ———————
      Force use of POST: checked
      API Version: 1004
      Use POST flag from chat server: false

      Operator: mobileOpp

      Start login testing…
      Login success

      Start check for updates testing…
      Check for updates success

      Start logout testing…
      Logout success

      Moataz ElHawary Reply
      • @Moataz,
        Given your test results it seems as if your server is configured properly.
        1 – What device are you using?
        2 – If Android, do you have access to the Google Play Store?
        3 – Is your server running on HTTPS (SSL)?

        Eyong Nsoesie Reply
        • – I am using Android , and yes I have access to Google play store
          – My web site is not using a HTTP( SSL )

          Moataz ElHawary Reply
          • Contact us via private email at info@wurrdapp.com and we will go from there.

            Eyong Nsoesie
  • Cannot login with Wurrd from Iphone
    Looks like av have completed the installation, but trying to log in from Iphone is not successful with er Login failed Unknown error Code = 4
    Also tried the testwurrd script which gives the following:
    Error getting server info! cURL Error #:SSL certificate problem: unable to get local issuer certificate
    Failed to get server info. Stopping tests here
    Testing complete
    My site uses ssl and is worling for mibew and other applications.
    Any idea on where to look for issues to resolve?

    Thomas Reply
    • Hello Thomas, when entering the url did you put the https:// in front of it? The app currently cannot redirect from http to https. If this doesn’t work for you please send us private email at info@wurrdapp.com so we can help you track down the issue.

      Eyong Nsoesie Reply
      • Hello,
        I finally get it to work by changing the config to use_http_post: true. I also deleted some addtional certificate files I had on the server. Not sure what did the trick.
        Thanks very much for your feedback.

        Thomas Reply

Leave a Reply to Moataz ElHawary Cancel reply

Your email address will not be published.