Get list of deleted onenote notebooks/sections/pages - onenote

My appplication periodically sync data with Onenote. If some content is deleted after syncing for the first how I can get list of names of pages/sections/notebooks that are deleted. Currently I am comparing id's of pages/sections/notebooks that are present in my system and one the which I receive from onenote syncing everytime. But this process takes too long and specially if I have large data.
Is there any MS-Graph/OneNote API which can provide me list(id's) of these deleted entities ?

There's no API to retrieve the list of deleted entities, unfortunately. The best way you can achieve this today with the API is to set up webhook integration, keep state on your side and the querying when you receive a webhook notification saying something changed - it looks like you're doing something similar.
If you believe the API should have this functionality, I encourage you to create and upvote an item in uservoice:
https://onenote.uservoice.com/forums/245490-onenote-developer-apis

Related

Update shopify inventory automatically

I have a shopify website, but my fulfilment process is done outside of shopify, meaning that when the customer picks a product, it redirects to another service, were the fulfillment is done, and the the purchase is concluded. Because of that, shopify has no way to know if the purchase is concluded or not, so the store has to be updated manually. This is what I would like to avoid.Is is there an app, or a way I can update shopify by sending a json or a CSV with the updated products? And does uploading a CSV with the entirety of my data to repopulate my inventory a valid idea?
I expect there to be an outside service/App that might be able to help automate this, because I am able to receive a Json file (via an api) with all the info of the products that have been purchased, but I don't know how to use it to update shopify.
Even if you fulfill external to Shopify with a service, Shopify can be set to maintain your inventory by removing the sold inventory. Fulfillment does not really come into play.
Regardless though, Shopify does have an API, and there are handy calls that let you update 100 SKUs with a new quantity, in one API call, at one location. So if you have a CSV or JSON file, it is very easy to use that data to update Shopify. Make authenticated API calls. In the store itself, you can generate a token allowing API updates, and you can test with Postman, meaning your total investment in this is near zero.

Forge API: Get all changed items

I need to get a list of all changed items in my project in BIM 360. Can I do this using forge-api.
Ho, regarding with the latest question [If my service is not available and I will miss some webhook events, how can I get all the changes that were made after the last webhook event received] :
If your requirement is to know which items are changed in one folder of Docs, Search API with filter can be of use. e.g. the endpoint below will return all items which are updated since a certain time.
https://developer.api.autodesk.com/data/v1/projects/{{project_id_with_b}}/folders/{{one_folder_id}}/search?filter[attributes.lastModifiedTime]-ge=2019-10-15
More filters options are described at
https://forge.autodesk.com/en/docs/data/v2/developers_guide/filtering/
While if you wanted to know all updates in one call, I do not see currently the way is available. While, Activity API is on the way, it might be helpful to know all activities during a certain dates, then you could filter out what you are interested in and locate the corresponding module>>files/resources etc.. but Activities may probably be categorized with specific scopes e.g. admin activities, project actives, issue activities etc. so it is not one call knows all updates.. And these APIs may not be exposed in the same time.

How do I update my web app's database when a change is made on QuickBooks Online?

I have a web app with a MySQL database we maintain in the cloud that we are trying to integrate with our QuickBooks Online account. We want to sync data between or web app's database and QuickBooks online, such as customer names and addresses. If they update their address in or web app, it's easy to then update it in QuickBooks online using the QuickBooks Online API. However, if they tell us their new address over the phone and we change it directly in QuickBooks online, we have no idea how to have that trigger something so that it automatically updates our MySQL web app. How do we go about doing this or learning about this process?
Intuit/QuickBooks has an API that's specifically geared towards this use-case. From the docs:
The change data capture (CDC) operation returns a list of entities that have changed since a specified time. This operation is for an app that periodically polls Data Services and then refreshes its local copy of entity data.
Docs are here:
https://developer.intuit.com/docs/0100_accounting/0300_developer_guides/change_data_capture
Basically you make an OAuth signed HTTP GET request like this:
https://quickbooks.api.intuit.com/v3/company/1234/cdc?entities=Class,Item,Invoice&changedSince=2012-07-20T22:25:51-07:00
And you get back a list of objects that have changed since the given date/time.
Your application can remember the last time you called this, and periodically call this API to get things that have changed since the last time you called it.
You get back something like this:
<IntuitResponse xmlns="http://schema.intuit.com/finance/v3" time="2013-04-03T10:36:19.393Z">
<CDCResponse>
<QueryResponse>
<Customer>...
</Customer>
<Customer>...
</Customer>
</QueryResponse>
<QueryResponse>
<Invoice>...
</Invoice>
<Invoice>...
</Invoice>
</QueryResponse>
</CDCResponse>
</IntuitResponse>

Are there any hooks for user modification events in google apps?

Currently the bane of my existence is dealing with users email signatures at work, changing names, titles, departments, new users...it's all annoying. Currently I manage it with GAM and a semi templated HTML file to push changes, which works okay, but it's still a manual process. What I'm looking to do is create a small app script or app engine project that can...
detect a new or changed user
pull the fields needed to fill in their signature template
push the changes to their account
2 & 3 are no problem at all, it's #1 that I cannot find a reasonable solution to.
I had thought about using the google apps audit settings to email a specific mailbox when a new user is created, but that will only catch new users, not changes in titles and such. My only apparent option is something that runs periodically checking all the users signatures against what my script would generate and updating if needed, but that's hardly efficient and creates a potential timelapse in the waiting period meaning when people want things 'done now' (which is of course, every request), it will mean I manually trigger the job; effectively bringing me back to my original solution.
Is there any kind of user feed that contains changes available in google apps? Maybe google has a POST hook that hits a predefined URL on changes?
You can probably use push notifications for this https://developers.google.com/drive/web/push using the users.watch method https://developers.google.com/admin-sdk/directory/v1/reference/users/watch

Google Drive API webhook returning change resources in wrong order

I have a webhook setup with the Google Drive API, and it works for almost everything except when a file is deleted. It seems as though I always get 2/3 webhook notifications when a file changes, which isn't a problem.
When I delete a file however, those 2 notifications mess things up. They come out of order (i.e. change resource 989 comes before 999), and the new one comes first, invalidating the older change resource.
To explain, here are two post I received on my webhook, chronologically ordered.
This one has a good webhook, but the resource id in the param is 899.
http://i.stack.imgur.com/il3co.png
Now this one comes in after, which is has a param of 898, but I cannot use.
http://i.imgur.com/ZLwUC1Z.png
This last one most likely has the delete call I need, but cannot access.
Is this something I have to handle? Or is it something from google's side in terms of async calls?