+
+ +
+

Validating APIs

+
+

Please make sure you go through this before you wonder why zmNinja is not working.

+
+
Assumption: Your ZM server is accessible at http://server/zm -> +replace this with your actual path
+
+

Make sure ZM APIs are working:

+

(Note - nginx users, if you are facing API issues, please see if this +page +helps)

+
    +
  • Step 1: Open up a browser

    +
  • +
  • Step 2: Log into ZM

    +
  • +
  • Step 3: Open another tab in the same browser (IMPORTANT: Has to +be from the same browser you logged into ZM)

    +
  • +
  • Step 4: Type in http://server/zm/api/host/getVersion.json –> you +should see a response like:

    +
    {
    +"version": "1.30.0",
    +"apiversion": "1.0"
    +}
    +
    +
    +

    version/apiversion may be different. If you don’t see such a +response, your APIs are not working

    +
  • +
  • Step 5:make sure you can see monitors and events:

    +
  • +
+

Type in http://server/zm/api/monitors.json –> you should see a +response like:

+
{
+    "monitors": [
+        {
+            "Monitor": {
+                /*lots of additional details*/
+            },
+            /*more monitor objects if you have more than one*/
+        }]
+}
+
+
+
    +
  • Step 6: (If you find your APIs show ok, but zmNinja has issues)
  • +
  • Open a browser, log into ZM
  • +
  • Open a new tab, enter http://server/zm/api/host/getVersion.json
  • +
  • Now, right click and do a View Source in your browser (different +browsers may have different names for it). This brings up a full +source code view of the page. Do you ONLY see the JSON output or do +you see gobs of HTML on top like <pre class= and lots of cake +related messages? If you do, you need to fix it.
  • +
+

if you find the page empty, your APIs/permissions have a problem. Please +post in the ZM forums (please DON’T contact me first as its not a +zmNinja bug)

+

Type in http://server/zm/api/events.json –> you should see a +response like: (this list may be an empty set if you don’t have events +but you will still see the {"events":[]} text - if you find the page +empty, your APIs have a problem. Please post in the ZM forums (please +DON’T contact me first, as its not a zmNinja bug)

+
{"events":[{"Event":{ /* many more details */ }}]}
+
+
+

Top reasons why monitors and events API returns blank while getVersion +works: * You don’t have monitor/event view permissions allocated to +the user * You have an invalid camera definition (happens sometimes +when you remove and re-add cameras) * If you are using non UTF8 +characters in your monitor names/zone names this can cause issues. Edit +/usr/share/zoneminder/www/api/app/Config/database.php (assuming ZM +is in /usr/share) and make sure 'encoding' => 'utf8' is +uncommented (remove //) around line 74. I’ve submitted a +patch +but till its merged, you might have to do it manually.

+
+
+
+

zmNinja API notes:

+
    +
  • Please make sure the user credentials you use has:
  • +
  • view or edit access to monitors
  • +
  • view or edit access to streams
  • +
  • view or edit access to system
  • +
  • If you are accessing zmNinja remotely, make sure you first access ZM +remotely from your desktop browser, ensure it works and then use the +same DNS/IP for zmNinja
  • +
+
+
+ + +
+
+ +
+