Dear Piwik Developers,
our company is establishing all website monitoring for customers with Piwik from now on.
Here’s the plot:
My Assignment is to build an Interface between our CustomersDatabase and the Piwik Server API.
We intend to enlist most of our customers (that hold their own web presence) as simple users [access=view] in Piwik.
While creating the Interface I faced a light problem regarding synchronization of the LoginData
on both Servers- one being Piwik, the other one ours.
The company I work for is providing an internetportal to which all clients have valid access informations like [USERNAME, EMAIL, PW, WEBSITE_URL, etc.].
First step I took was to transfer all the access informations from our DB using HTTP-Requests (Delphi Source Code) and create user-accounts for each one in Piwik. Also I added the websites via request, then matching the returned siteId’s to the correspondent user in our DB (plus of course setting its access rights on Piwik).
Now the problem:
We want to keep track of when a user changes its access informations on piwik, like user name, email or pw.
I was looking for a method or something to get that kind of information, but I did not manage to find a prefixed solution for doing so.
So far, I’m elaborating a workaround:
<!--Checks wether a specific users information exists--> 'http://stats.none-of-your-biz.de/? &module=API &method=UsersManager.userExists &userLogin='+pPartner.getWebindiv() +'&token_auth=dexxxxxxxxxxxxxxxxxxxxxxxxxxxxe3' <!--Returns a userLogin for a specific siteId with a specific access attribution--> http://stats.my-next-home.de/? &module=API &method=UsersManager.getUsersWithSiteAccess &idSite=7 &access=view &format=xml &token_auth=de33632777a8db251e8059fde4cecce3
Since we can always retrieve the URL of the website a client is tracking in piwik(from our DB),
there is of course a way to find the appropriate userLogin on Piwik to it and store the updated information.
But firing 2 separat Requests, processing the XML-returned Data and then again pushing this data via request into DB isn’t really a high-performance solution.
So, I was wondering if maybe you have already made some experience for a similar issue?
Or maybe give me advise on finding a better workaround?
Thanks in advance and also greetings from Germany!