Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Objective-C) Microsoft Teams OAuth2 Client Credentials AuthenticationSee more Microsoft Teams ExamplesDemonstrates how to authenticate with OAuth 2.0 using the client credentials grant type. Note: This example uses the new "Integrated OAuth2 Client Credentials" feature introduced in Chilkat v9.5.0.96.
#import <CkoHttp.h> #import <CkoJsonObject.h> #import <CkoHttpResponse.h> // This requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. BOOL success; CkoHttp *http = [[CkoHttp alloc] init]; // Provide the information needed for Chilkat to automatically fetch the OAuth2.0 // access token as needed. // This is the new "Integrated OAuth2 Client Credentials" feature introduced in Chilkat v9.5.0.96. CkoJsonObject *jsonOAuthCC = [[CkoJsonObject alloc] init]; // -------------------------------------------------------------------------------------------------------- // You'll need to have registered an app in Azure beforehand. // // Note: Creating a Team requires the following Application permissions: // Team.Create, Teamwork.Migrate.All, Group.ReadWrite.All**, Directory.ReadWrite.All** // // See How to Create an Azure App Registration for OAuth 2.0 Client Credentials // -------------------------------------------------------------------------------------------------------- // Use the values from your App Registration in Azure. [jsonOAuthCC UpdateString: @"client_id" value: @"e1cd2318-xxxx-4916-bfd6-xxxxxxxxxxxx"]; [jsonOAuthCC UpdateString: @"client_secret" value: @"K.d8Q~RoJxxxxvCj_u_xxxxxxxxxxxxxxxxxxxxx"]; // You'll always use this scope for client credentials, because the allowed actions // are determined by the App Permissions defined when you registered the app in Azure. [jsonOAuthCC UpdateString: @"scope" value: @"https://graph.microsoft.com/.default"]; // The token endpoint includes your tenant ID. Use your tenant ID (not the tenant ID shown here). [jsonOAuthCC UpdateString: @"token_endpoint" value: @"https://login.microsoftonline.com/112d7ed6-71bf-4eba-a866-738364321bfc/oauth2/v2.0/token"]; // Provide the OAuth2 information. Chilkat will use this information to automatically fetch the OAuth2 access token as needed, http.AuthToken = [jsonOAuthCC Emit]; // ------------------------------------------------------------------------------ // To create a Microsoft Team, we want to send an HTTP request like the following: // // Note: The following is the minimal JSON for a request using Applicaton permissions (i.e. the access token retrieved using the client credentials grant). // // POST https://graph.microsoft.com/v1.0/teams // Content-Type: application/json // // { // "template@odata.bind":"https://graph.microsoft.com/v1.0/teamsTemplates('standard')", // "displayName":"My Sample Team", // "description":"My Sample Teams Description", // "members":[ // { // "@odata.type":"#microsoft.graph.aadUserConversationMember", // "roles":[ // "owner" // ], // "user@odata.bind":"https://graph.microsoft.com/v1.0/users('0040b377-61d8-43db-94f5-81374122dc7e')" // } // ] // } CkoJsonObject *json = [[CkoJsonObject alloc] init]; [json UpdateString: @"\"template@odata.bind\"" value: @"https://graph.microsoft.com/v1.0/teamsTemplates('standard')"]; [json UpdateString: @"displayName" value: @"My Sample Team"]; [json UpdateString: @"description" value: @"My Sample Teams Description"]; [json UpdateString: @"members[0].\"@odata.type\"" value: @"#microsoft.graph.aadUserConversationMember"]; [json UpdateString: @"members[0].roles[0]" value: @"owner"]; [json UpdateString: @"members[0].\"user@odata.bind\"" value: @"https://graph.microsoft.com/v1.0/users('4ee732c3-322e-4a6b-b729-2fd1eb5c6004')"]; json.EmitCompact = NO; NSLog(@"%@",[json Emit]); [http SetRequestHeader: @"Content-type" value: @"application/json"]; CkoHttpResponse *resp = [http PostJson3: @"https://graph.microsoft.com/v1.0/teams" contentType: @"application/json" json: json]; if (http.LastMethodSuccess == NO) { NSLog(@"%@",http.LastErrorText); return; } // A successful response is indicated by a 202 response status code and an empty response body. NSLog(@"%@%d",@"Response Status Code: ",[resp.StatusCode intValue]); NSLog(@"%@",@"Response Body:"); NSLog(@"%@",resp.BodyStr); if ([resp.StatusCode intValue] >= 400) { NSLog(@"%@",@"Response Header:"); NSLog(@"%@",resp.Header); NSLog(@"%@",@"Failed."); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.