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
- Install Mibew 2.1 or above
- Download the Wurrd plugin files:
- Wurrd Authentication Plugin
- Wurrd Client Interface Plugin
- 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:
- 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
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
- 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.
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?
Where do we find the client_id, that is referenced in the sample config code above?
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.
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”
Hello,
What version of the Wurrd Auth plugin are you using? Version 0.1.3 does not require any changes to the config.yml file.
yes, is 0.1.3 mibew is 2.1.0
You mean, just upload can be enabled directly, do not edit the CONFIG.YML file?
Is it a path problem?
this my:
http://xxx.com/index.php/operator/plugin/Wurrd:AuthAPI/enable?csrf_token=xxxxxx
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!
My server environment:
linux+nginx+mysql+php
Website home page:http://lnmp.org
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
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 ?
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,
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)?
– I am using Android , and yes I have access to Google play store
– My web site is not using a HTTP( SSL )
Contact us via private email at info@wurrdapp.com and we will go from there.
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?
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.
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.