-
-
Notifications
You must be signed in to change notification settings - Fork 270
Validating if APIs work on ZM
Assumption: Your ZM server is accessible at
http://server/zm
-> replace this with your actual path
(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)
Skip step 4 if you are using ZM 1.30.2 or above. Go directly to Step 5 (Step 4 will result in an error in ZM 1.30.2 or above)
- Step 4: Type in
http://server/zm/api
--> you should see a page with green bars. If you see red, your APIs are not working - Step 5: 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 6: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>
}]
}
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.
- 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
- I'm not a magician. I don't know why something is not working if you don't provide sufficient inputs. Enable debug logs in zmNinja Developer options and then email me the logs. Thats a good start.
- Its often hard to infer a problem especially when its due to some unique apache/nginx mungling you might have done but haven't told me about it. In such cases, try and give me remote access to your ZM for a day. Configure a limited user with just one monitor. It will save hours of frustration (mostly on my side). Thanks