Cannot fetch rooms through EWS API - exchangewebservices

I always get an empty response when I try to use the GetRoomLists web-service: https://msdn.microsoft.com/EN-US/library/office/dn643730%28v=exchg.150%29.aspx#bk_GetRoomListewsma
However, with the same account, I can correctly see rooms when I am using Outlook.
If I watch the network activity when I use Outlook, I can see that roughly 3 calls are made:
GetRoomLists is called and an empty result is returned
GetRoomsInternal is called and this time rooms are correctly being returned
GetUserAvailabilityInternal enables to fetch the availability of each rooms returned by GetRoomsInternal
It looks like GetRoomsInternal and GetUserAvailabilityInternal are exactly the API I want to call. Besides, these API seem to be private since they are not documented.
Is there a way to fetch all rooms using the public API ?

Related

How to list all running workitems in Forge - Design Automation for Revit?

I would like to get running workitems to track progress of the posted workitems.
It is possible to get details to a given workitem by providing an ID, like this:
https://developer.api.autodesk.com/da/us-east/v3/workitems/{{workitemId}}
but I have posted multiple jobs, and using postman, only the last ID gets saved to an environment variable.
I tried getting the generic /workitems endpoints without query strings, but the result was that "The requested resource does not exist."
It would be nice to get a bit more documentation about the specific endpoints, I have read
The developers_guide
but could not find an answer.
I would expect a rest api to give back a list of workitems, just like it does it for activites or appbundles.
Design Automation doesn't have an API to list WorkItems. We only keep WorkItem's reports for 3 days.
You can use this API to get details of a given workitem by providing its id.

How to make join in rest api like in sql?

I am currently new in programming especially in front end and I was wounder how to perform join in Json Restful API
I am using Json placeholder for my fake rest api
I have tried reading their document by I failed
https://jsonplaceholder.typicode.com/posts/20
https://jsonplaceholder.typicode.com/users
I want to join these two tables
and display title,body from posts and username from user according to the userid in post
It seems like you will have to either create an endpoint in your backend that would perform the read from two joint tables and return a DTO having all the fields that you require, or (if that's impossible) you will have to call both endpoints in your client. So for example you could fetch the users in one call, then retrieve posts in separate calls and write front-end logic to find the associated user and display the data you need.
Ex. call api to get users, store them in a users array in your front end client code, then call api to get post and search for the corresponding user in the user array by userId

How do i get meeting/appointmens for more than one resource (mailbox) with EWS java api?

I have general question regarding using Exchange Web Service.
I am using ews-java-api
https://github.com/OfficeDev/ews-java-api
and also tried using JEC - Java exhange connector.
http://elich11.freeshell.org/index.html
If a company have 100 to 500 rooms our goal is to get a total list of appointments/meetings for all of these rooms at once as fast as possible.
Using this api what is the best solution for this issue that uses the least time to get a total list of appointments from a list of already known room addresses.
List attendees = new ArrayList();
attendees.add("room1#domain.com");
attendees.add("room2#domain.com");
attendees.add("room4#domain.com");
attendees.add("User1#domain.com");
attendees.add("User2#domain.com");
attendees.add("Room5#domain.com");
attendees.add("Room6#domain.com");
attendees.add("room10#domain.com");
attendees.add("room11#domain.com");
attendees.add("room12#domain.com");
attendees.add("room13#domain.com");
attendees.add("room14#domain.com");
attendees.add("room15#domain.com");
attendees.add("room16#domain.com");
I tried running through a list of email adresses in an array using impersonation for each mailbox to gain acces to the meetings. I have also tried to grant delegation to each mailbox for one specific user, so i dont have to impersonate each mailbox for the user this user to get the appointments.
My problem is with the number of rooms companies can have, both of these methods i slow because the number of webservice calls increases with the amount of mailboxes.
Is there any suppported method og workaround for extracting appointments for more than one mailbox without having to perform a webservicecall for each resource (mailbox)?
It depends of the level of detail you need for each appointment. If you need the full Appointment object there is no other way you can do it. However you may want to consider running multiple concurrent queries (you need to consider throttling will affect you a some point if you push this too far).
Otherwise if you can deal with just having the Subject,Start,EndTime for appointments then GetUserAvailbility https://learn.microsoft.com/en-us/exchange/client-developer/web-service-reference/getuseravailability-operation should work okay in batches of 100.

Youtube Api get user's subscriped channels

I'm coding a app which needs to get a list of subscribed channels of the user.
So the user gets navigated to this page so I can get the authorization key:
Get Access key for my App "AboReminder"
Now I get the access key which I need for some api requests. But I am stuck on the issue that I dont have any glue how to get the subscription list.
I'm not able to understand the information on the google page: Google APi documentation
So my question how is a possible request for getting all subscriped channels of the user?
send an ajax request to the following URL after replacing the {{OAUTHKEY}} with the appropriate user authorization key
https://content.googleapis.com/youtube/v3/subscriptions?part=id,contentDetails,snippet&maxResults=10&mine=true&key={{OAUTHKEY}}
This should be a GET request and no request body required to set.
You can navigate to the next set of results using 'nextPageToken' in the response.
By default api can generate only 5 results. You can get upto 50 results by providing 'maxResults' query parameter.
As far as I know, there is no way to get all the list.

JSON response data size issue

I am using Discover the Google Analytics platform to generate queries in order to make callouts to GA from inside a SalesForce application. Upon creating the custom the report an API Query URI is generated which presents the data from the report in a JSON format.
One example uri looks like the following:
https://www.googleapis.com/analytics/v3/data/ga?ids=[my gi id] &start-date=[start date]&end-date=[end date[&metrics=ga%3Asessions%2Cga%3AsessionDuration&dimensions=ga%3AdaysSinceLastSession%2Cga%3Acampaign%2Cga%3AsourceMedium%2Cga%3AsocialNetwork%2Cga%3Adimension2&filters=ga%3AsessionDuration%3E1&access_token=[my access token]
The issue is that the presented data is limited to 1000 rows max, and I am not sure how can I surpass this size view limit.
The google analytics API has a field you can send called max-results if you add
&max-results=10000
to your request you will get paging of 10000 rows. That is the max you can set it to if there are more results a nextlink will be returned with the results that you can use to make more requests to get the additional data.