Faster API for downloading 'just IDs' from O365 Exchange? - rest

I am connecting to O365 Outlook Mail Get Messages REST API, e.g.
GET https://outlook.office365.com/api/v1.0/me/messages?$top=50&$select=Id
and I am trying to retrieve just IDs so I can determine if messages have been deleted from my inbox (e.g. diff'ing against a previous ID list). I'm checking #odata.nextLink to perform a synchronous series of REST calls until complete.
I'm finding that this call has roughly the same performance as downloading the full message (e.g. without the $select clause), aka ~50 Ids / second. I'd like to know if there is a more efficient / quicker way of retrieving just a list of Ids of all messages in the Inbox. A call to retrieve a list of deleted/moved Ids from a point in time (e.g. tombstones) would also work, something like:
GET https://outlook.office365.com/api/v1.0/me/messages?$top=50&$select=Id&$filter=DateTimeTombstone gt 2014-09-01T00:00:00Z
Thanks!

No, currently there isn't. Sync is on our radar to add though, which sounds like it might help your scenario.

Don't know about the REST API, but EWS lets you sync any Exchange folder - this way you will know which items were created/modified/deleted without loading all items in the folder - see https://msdn.microsoft.com/en-us/library/office/Ee693003(v=EXCHG.80).aspx

Related

Restcomm cdr files

Having integrated our Billing system Meveo with RestComm to provision accounts and phone numbers, I would like to know where I can get CDR files and what is their format.
Thank you
One straightforward way it to fetch CDRs via the REST API. You can fetch records in a time frame (via list filter) and paginate to control overload of the Restcomm server:
Calls logs API:
http://docs.telestax.com/restcomm-api-calls/
SMS message logs API:
http://docs.telestax.com/restcomm-api-sms-messages/
Notice that some records returned by this API may be fore calls in-progress. To fetch only calls that completed or failed, use list filter parameters.
For very high load systems, it is better to read from the rolling CDR log files from a shared file system. We can discuss how this can be done in a separate thread.

Is there any way to get a list of users for a custom audience?

Getting other details is easy, but there doesn't seem to be any API accessible way to get a list of users (or even approximate users) for the audience. You can add them, and delete them (?!) but not enumerate all the users in the list.
Is that truly the case, or am I missing something?
According to the documentation here: https://developers.facebook.com/docs/reference/ads-api/custom-audience-targeting/ you should be able to see an approximate count.
There is no way to get the users back from the custom audience list by design.
For the audiences you never upload raw contact data. You always have to hash it via SHA256 and send the feed to Facebook that way. Since you have not provided the actual contact information like email, phone number facebook won't give those back to you it would be an information breach in a way.
If what you are asking is whether you can retrieve back the hashes that you have sent, I have not been able to find a way it on the API so I assume they think that you already have that list since you uploaded it in the first place.
https://developers.facebook.com/docs/marketing-api/audiences-api/

All Facebook messages from Graph API

I'm building an application for my personal use that saves all my facebook messages in a database on my computer.
But I have a problem as it seems only few messages can be accessed through the Graph API.
I created a token with all the possible permissions.
When issuing a call:
/me/inbox
I get all the threads in my inbox but for some of them the comments field which contains the actual messages is missing. It's mostly for conversation with people that are not friend with me on facebook.
For those threads, when I try to get more information by /<id_of_the_thread>
I get an error (code 100) Unsupported get request. from the graph api.
Is it a normal behaviour of the API?
What am I missing here?
Don't hesitate if you know a better way of saving all my messages.
Another, somewhat inferior, but much more accessible way of obtaining one's Facebook messages is by downloading a copy of your Facebook data through https://www.facebook.com/settings. This way you can download an archive with all your FB data, including your messages. They are however capped to 10,000 messages per conversation, and are all stored in one .htm file, which is not very practical if you want to do further operation on them.
No i think, we can't specified the Thread by using ID, but commonly i'm sorting the threads by its sender. CMIIW

Using GA Data Export API to Get All UA's

I am using the GA Data Export API to interact with Google Analytics and I'm making a lot of progress, I am using this URL Endpoint initially to pull all the profiles under an account:
https://www.google.com/analytics/feeds/accounts/default
This URL retrieves each GA ID (profile) and each UA. One thing I've realized is one account can contain multiple UAs and when this happens, this request pulls all profiles. We have a client who has about 115 profiles under like 10 different UAs, and the request takes about 30 seconds for the initial request (and then I believe it must be cached, because it speeds up considerably after this, but then the next day the same thing occurs).
Is there a way to get a list of UA's without pulling the profiles? This way I can query the UA specifically for the profiles instead of pulling each one.
Any advice on this would be really helpful!
Thanks
UPDATE: Here's some documentation on the specific call I am using right now:
http://code.google.com/apis/analytics/docs/gdata/gdataReferenceAccountFeed.html
UPDATE 1: I have found some interesting information in the docs
Once your application has verified
that the user has Analytics access,
its next step is to find out which
Analytics accounts the user has access
to. Remember, users can have access to
many different accounts, and within
them, many different profiles. For
this reason, your application cannot
access any report information without
first requesting the list of accounts
available to the user. The resulting
accounts feed returns that list, but
most importantly, the list also
contains the account profiles that the
user can view.
So this means that you have to use the default accounts call to get these back? Surely, somebody has had this issue before?
So apparently, you can query the account if you know the UA-ID, however there is no way to get back a list of only UA IDs.
One way you can do it is have the user enter their own UA ID instead of having them choose one; not as user-friendly as it could be but better than making the user wait 30 seconds!

Real time App with Facebook

Does Facebook provide access to any real time APIs so that you can respond to events as soon as they happen? If not, what alternatives are there and what are their limitations? For example, if I use polling instead, will they limit my api calls? And if I try using RSS feeds, about how much delay can I expect? Or maybe it would be possible to receive and process email notifications (if I could convince a user to forward mail to another email address), as they seem to be dispatched pretty promptly.
I've never tried polling user data, but I think it will work without issues. As far as I know there are no restrictions on the number of API calls you can make on facebook.
As far as the Queries are concerned, what I have seen and I think this is how they implement it. If your query asks for too much data(takes too much time to process is how they measure this I think) - the query will just fail.
eg: I had this app that would pull all the status messages of all the friends of the user and display it in one place. I first queried for all the friends of the user - this worked okay. But at the same time if I ran a loop to get all the status messages for each friend - it would just fail.
I think you can call individual queries without issues, just be careful you query only data you need, cause, if the queries are too big or too many they will just fail. Best way to findout is running tests yourself.
The Facebook Graph API will allow you to subscribe to real time changes. You can currently only subscribe to users, permissions and errors, but they promise to allow subscribing to more objects in the future.