Chilkat Examples

ChilkatHOMEAndroid™Classic ASPCC++C#Mono C#.NET Core C#C# UWP/WinRTDataFlexDelphi ActiveXDelphi DLLVisual FoxProJavaLianjaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerBuilderPowerShellPureBasicCkPythonChilkat2-PythonRubySQL ServerSwiftTclUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET UWP/WinRTVBScriptXojo PluginNode.jsExcel

C# UWP/WinRT Examples


ASN.1
Amazon S3
Amazon S3 (new)
Amazon SES
Amazon SNS
Amazon SQS
Azure Cloud Storage
Azure Service Bus
Bounced Email
Box
CSR
CSV
Certificates
Compression
DKIM / DomainKey
DSA
Diffie-Hellman
Digital Signatures
Dropbox
Dynamics CRM
ECC
Email Object
Encryption
FTP
Facebook
Firebase
GeoOp
Google APIs
Google Calendar
Google Cloud Storage
Google Drive
Gzip
HTML-to-XML/Text
HTTP
HTTP Misc
IMAP
JSON
JSON Web Encryption (JWE)
JSON Web Signatures (JWS)
JSON Web Token (JWT)
Java KeyStore (JKS)

Jira
MHT / HTML Email
MIME
Microsoft Graph
NTLM
OAuth1
OAuth2
OneDrive
OpenSSL
Outlook
PEM
PFX/P12
POP3
PRNG
PayPal
Peoplevox
QuickBooks
REST
REST Misc
RSA Encryption
SCP
SFTP
SMTP
SSH
SSH Key
SSH Tunnel
SharePoint
Shopify
Socket/SSL/TLS
Spider
Stream
Stripe
SugarCRM
Tar Archive
Twitter
VoiceBase
Walmart
WebSocket
XAdES
XML
XML Digital Signatures
XMP
Xero
Zip
curl
eBay

 

 

 

(C# UWP/WinRT) Refresh GMail SMTP OAuth2 Access Token

Demonstrates how to refresh an access token for sending email via GMail (SMTP).

Chilkat Universal Windows Platform (UWP) / WinRT Downloads

Chilkat for the Universal Windows Platform (UWP)

//  This example requires the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

//  See Get GMail SMTP Access Token
//  for sample code showing how to obtain a GMail SMTP access token for desktop apps.

//  It is assumed we previously obtained an OAuth2 access token for GMail (one with a scope for sending email).

Chilkat.JsonObject jsonToken = new Chilkat.JsonObject();
bool success = jsonToken.LoadFile("qa_data/tokens/_gmailSmtp.json");
if (success != true) {
    Debug.WriteLine("Failed to load _gmailSmtp.json");
    return;
}

//  The access token JSON looks something like this:

//  	{
//  	 "access_token": "abac.Ci-ZabcdF37-NUrmSzxbHxTsMbtlN-uPfabcdAQN_2ekzj0s5ofCzRabcdTDMGaa2Q",
//  	 "token_type": "Bearer",
//  	 "expires_in": 3600,
//  	 "refresh_token": "1/lEe5abcdNJ77eOSDBabcdkQGVmDalkwabcdR2Hatbo"
//  	}
// 

Chilkat.OAuth2 oauth2 = new Chilkat.OAuth2();

oauth2.TokenEndpoint = "https://www.googleapis.com/oauth2/v4/token";

//  Replace these with actual values.
oauth2.ClientId = "GOOGLE-CLIENT-ID";
oauth2.ClientSecret = "GOOGLE-CLIENT-SECRET";

//  Get the "refresh_token"
oauth2.RefreshToken = jsonToken.StringOf("refresh_token");

//  Send the HTTP POST to refresh the access token..
success = await oauth2.RefreshAccessTokenAsync();
if (success != true) {
    Debug.WriteLine(oauth2.LastErrorText);
    return;
}

//  The response contains a new access token, but we must keep
//  our existing refresh token for when we need to refresh again in the future.
jsonToken.UpdateString("access_token",oauth2.AccessToken);

//  Save the new JSON access token response to a file.
Chilkat.StringBuilder sbJson = new Chilkat.StringBuilder();
jsonToken.EmitCompact = false;
jsonToken.EmitSb(sbJson);
sbJson.WriteFile("qa_data/tokens/_gmailSmtp.json","utf-8",false);

Debug.WriteLine("OAuth2 authorization granted!");
Debug.WriteLine("New Access Token = " + oauth2.AccessToken);

 

© 2000-2016 Chilkat Software, Inc. All Rights Reserved.