Search code examples
javascriptrestoffice365apimicrosoft-graph-api

Create Groups in O365


Currently i am working on an App which will create groups in Office 365 programatically. I am wondering if this is possible using JavaScript. I also had another question regarding the Authentication and Authorization process. I am able to register the App and fetch the Authorization code. However when i try to fetch the Access token, it throws an error stating that it encountered a bad request. My Authorization URL is of the form:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
client_id=<some_client_id>
&scope=openid+profile
&response_type=id_token
&redirect_uri=<some_redirect_url>
&nonce=123456789


And my access token request url is:

https://login.microsoftonline.com/common/oauth2/v2.0/token?
grant_type=authorization_code
&code=<Code_generated_in_above_request>
&redirect_uri=<some_redirect_url>
&resource=https%3A%2F%2Fgraph.microsoft.com%2F
&scope=openid+profile
&client_id=<some_client_id>
&client_secret=<Some_client_secret>


If anyone could help me regarding my doubts, then it would be greatly appreciated. Thanks.


Solution

  • Microsoft Graph from JavaScript

    Using Microsoft Graph from JavaScript works. HTTP requests to the REST endpoints with a valid access token will work great. You might also want to check out KurveJS (github:MicrosoftDX/kurvejs) for a simple library (handles authentication and some graph operations).

    Authentication

    If you are attempting client-side implicit flow, you can pass 'response_type=id_token+token' and avoid the second call. This will return you an access token in the resulting payload.

    If you are attempting server-side authentication, you should pass 'response_type=code' and then make the second call for the access token with the resulting code.

    References:

    v2.0 Protocols - SPAs using the implicit flow

    v2.0 Protocols - OAuth 2.0 Authorization Code Flow