|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (PureBasic) Office365 IMAP with OAuth2 AuthenticationSee more Office365 ExamplesDemonstrates how to authenticate using OAuth2 with outlook.office365.com.
 IncludeFile "CkImap.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() ; An Office365 OAuth2 access token must first be obtained prior ; to running this code. ; Getting the OAuth2 access token for the 1st time requires the O365 account owner's ; interactive authorizaition via a web browser. Afterwards, the access token ; can be repeatedly refreshed automatically. ; See the following examples for getting and refreshing an OAuth2 access token ; Get Office365 SMTP/IMAP/POP3 OAuth2 Access Token ; Refresh Office365 SMTP/IMAP/POP3 OAuth2 Access Token ; First get our previously obtained OAuth2 access token. jsonToken.i = CkJsonObject::ckCreate() If jsonToken.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i = CkJsonObject::ckLoadFile(jsonToken,"qa_data/tokens/office365.json") If success = 0 Debug "Failed to open the office365 OAuth JSON file." CkJsonObject::ckDispose(jsonToken) ProcedureReturn EndIf imap.i = CkImap::ckCreate() If imap.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkImap::setCkSsl(imap, 1) CkImap::setCkPort(imap, 993) ; Connect to the Office365 IMAP server. success = CkImap::ckConnect(imap,"outlook.office365.com") If success <> 1 Debug CkImap::ckLastErrorText(imap) CkJsonObject::ckDispose(jsonToken) CkImap::ckDispose(imap) ProcedureReturn EndIf ; Use OAuth2 authentication. CkImap::setCkAuthMethod(imap, "XOAUTH2") ; Login using our username (i.e. email address) and the access token for the password. success = CkImap::ckLogin(imap,"OFFICE365_EMAIL_ADDRESS",CkJsonObject::ckStringOf(jsonToken,"access_token")) If success <> 1 Debug CkImap::ckLastErrorText(imap) CkJsonObject::ckDispose(jsonToken) CkImap::ckDispose(imap) ProcedureReturn EndIf Debug "O365 OAuth authentication is successful." ; Do something... success = CkImap::ckSelectMailbox(imap,"Inbox") If success <> 1 Debug CkImap::ckLastErrorText(imap) CkJsonObject::ckDispose(jsonToken) CkImap::ckDispose(imap) ProcedureReturn EndIf ; Your application can continue to do other things in the IMAP session.... ; When finished, logout and close the connection. success = CkImap::ckLogout(imap) success = CkImap::ckDisconnect(imap) Debug "Finished." CkJsonObject::ckDispose(jsonToken) CkImap::ckDispose(imap) ProcedureReturn EndProcedure | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.