Office 365 REST API list resources (meeting rooms) - api

I have a question about Office365 REST API. Is there a way to obtain list of resources - meeting room calendars.
I can only get meetings that will take place in room if I know meeting room username.
https://outlook.office365.com/api/v1.0/users/room1#xxxx.onmicrosoft.com/calendars
Can I list all meeting rooms and obtain their calendars?

You can use the Azure AD Graph API to query the list of users. However, there is no field in the API that marks a user as being a conference room. Depending on how your organization creates and names rooms, maybe you can find a filter that will only return rooms.
After that, it's just a matter of implementing the client credential flow so you can access multiple mailboxes.

Related

Is it possible to get display name from google account email

Abstract
I develop a Google API integration for a Saas product.
One of its functions is to retrieve the email and displayName of the participants of an event registered in Google Calendar.(ref 1, same issue is reported)
At first I try to get email and display name from get method for google calendar events resources,but I found that many event participants have an email but no displayName.( ref 2,3 )
Then, I try to use google people api to get displayName from email but I couldn't find the way to get it.
Question
If you know the way to get displayName from google account email, please tell me how to do it.
Reference
Google Calendar API: Display Name doesn't work
Google Calendar API, Events Resource representations
Google Calendar API, Events Resource representations
The displayName availability depends either from that account's Name set at Google profile) or from the API caller's contact List in Google Contact.
If the caller and the affected account are within the same Google Workspace environment, then the domain's user profile Name is taken into account.
If that account is added to the caller's Contacts, then it is also possible to retrieve its Display Name via People API.
If the affected account doesn't have a name set nor it is within the caller's contacts, that's expected behavior.

How to use same account for multiple companies (Just like a same account can be used for multiple workspaces on Slack)

I am working on a web application which is based on Google App Engine (GAE). The requirement of the application is that one user can be associated with multiple company accounts.
My application has two main types of accounts. One is that main Admin/Company account. Other is the employee account (i.e. the persons who work under a company). Now, what I want to do is that to allow an employee to work under more than one companies, but he does not have to make a separate account for each company. His single account can be associated with multiple companies.
I have explored different platforms which are already supporting this feature. The major ones which I found are Slack and Asana. And my problem can be perfectly mapped to what Slack is doing right now i.e. I create a single account on Slack and I can join multiple workspaces on Slack using this single account.
I want to achieve the same in my application too. I am curious that how Slack is supporting this feature right now? Does it send some ID with every request to the server which indicates that the activity which just has been done is associated with the workspace under this ID? Or there is some unique sort of token associated with every workspace (on Slack API level)?
I do have such a model in my app. A unique auth_token is associated with every company account. So, I am thinking that when an employee wants to do an activity for a specific company he will send this unique token with the request to the server so that server knows for which company the activity was performed.
Does anybody know what is the best way of achieving this?
There are two different concepts at work here:
Relation between account and company / workspace
The data structure for the Slack account is designed such that it can be linked to multiple Slack workspaces, e.g. in SQL you would have a many-2-many relation between the accounts and the workspaces table.
Staying logged in
The way Slack and others Single-Sign-On provides like Google SSO keep you logged in is by settings a browser cookie. That cookie would usually be some kind of crypto hash and the SSO provider will use it to identify to which account the current user belongs to or to request a login via OAuth if the cookie is missing / invalid.
This can also be achieved partly with server sessions (which also uses cookies). Using server sessions is easier to implement than implementing your own (secure) cookie solution, however the user will only stay logged in as long as the browser stays open. But that should be sufficient for most solutions.
Note that tokens for the Slack API work very differently. e.g. they have to be generated per workspace, user and app.

How to send invitation mail for join a meeting in gotomeeting?

I have an account of gotomeeting and using api to create/start/getMeeting etc but I have not found any api to send mail and invite people to attend a meeting. Is it possible to send invitation mail to people to join a meeting using api? If not then is there any other solution to send meeting invitation mail?
Is it possible to register a user before start of meeting? How can we find how many user has attended the meeting?
Thanks in advanced.
Yes its possible, the email invitation will be in two type
A normal email from server
An appoinment item.
If you want to send a normal email to participants. just fill the mail with join link with Created meetingid
You can create the join link for any particular meeting by concatenating the www.global.gotomeeting.com/join/ with meetingID which is look like www.global.gotomeeting.com/join/25456364 (number is sample meeting id).
send the above details as a mail. Sending mails from program depends on "which language you are developing" like C#/JAVA?
If you want to send the appoinment item, either you need to use EWS (Exchange webservices API) or you need to generate an ".ics" file from application with your meeting details filled in.
For your questions:
Is it possible to register a user before start of the meeting?
Yes, you can. the gotomeeting application itself having the options for invite a participant and adding a co-orrganizer.
How can we find how many user has attended the meeting?
You can find it using the api function call. below is the C# code for getting the attendees of a past meeting.
Namespace : using Citrix.GoToMeeting.Api;
MeetingsApi meeting = new MeetingsApi();
List<AttendeeByMeeting> attendees = new System.Collections.Generic.List<AttendeeByMeeting>();
attendees = meeting.getAttendeesByMeetings(accesToken, 23843894);
NOTE : API is used within the context of gotomeeting application, physically you cannot attend a meeting in any application except GotoMeeting desktop application and GotoMeeting webapplication (which is offered in their website).
GTM isn't going to send the email for you it, as it doesn't have access to any email account. You should be looking to use one of the wide variety of different email APIs around. E.g. if you're in a Windows/Exchange environment then look at using the Exchange Web Services. If you want a more generic solution look for an SMTP library for your platform.
Attendees for GTMs don't register at any point, only hosts need to have a registered account. Even when you join a meeting as an attendee the details (name + email) you put in can be anything. What are you trying to achieve by "pre-registration"?
I can't answer your last question about finding out how many users attended the meeting, I would guess probably not but I'm not really familiar with the API.

Is there a way to get four square users twitter id using foursquare API

Is there a way to get four square users twitter id using foursquare API
I have checked the gnip API, i have contacted them but the said it only supports enterprises
I need the users twitter id who checkin to specific locations using Foursquare so i can allow my users to communicate with them on my website
I need Anonymous users data and specifically not my friends data
Have a look at the Four Square API's documentation for a good place to start... It appears that this information is potentially available, however it might be dependent on you being "friends" with them or not:
If the user is a friend, contact information, Facebook ID, and Twitter handle and the user's last checkin may also be present.
The users endpoint will return a user object: This is available in their Compact and Complete objects, but not their "Mini" object.
contact: An object containing none, some, or all of twitter, facebook, email, and phone. Both are strings.

Copying all foursquare venues of a city without violating API's usage rules?

Scope:
I am starting an application that will need a very rich database of venues within a certain city right on it's start so i thought that scraping foursquare's database would be a great idea, but seems like scraping volumes over 1000 venues is considered forbidden according to it's usage / data retention policy
My Needs:
Basically, what i want to achieve is a way to allow users to search their favorite venues and receive notifications from them, so having all the venues of this city would be perfect for me, allowing me to store the relationship USER XXX FOLLOWS YYY VENUE
Problem:
Since i can't "copy" / "transfer" all the foursquare venues of a given city to my own database, what can i do to actually "store" the data i need for my own use ?
Is there any workaround for this ? (I don't mean ilegal actions, but some clever use of the API instead).
You can force your users to connect with 4sq (with oauth), then retrieve the data you need using oauth tokenwith 4sq api, which does not violate the rules and put any limits to the amount of data.
You can store user's 4sq id and the venue ids they follow in your own db and retrieve the details as needed. Am I missing sth with this flow?