Skip to content

Instantly share code, notes, and snippets.

View wadewegner's full-sized avatar

Wade Wegner wadewegner

View GitHub Profile
@wadewegner
wadewegner / AssociationUriMapper.cs
Created January 29, 2014 21:23
Code used by the WindowsPhoneOAuth sample.
class AssociationUriMapper : UriMapperBase
{
public override Uri MapUri(Uri uri)
{
var tempUri = System.Net.HttpUtility.UrlDecode(uri.ToString());
if (tempUri.Contains("sfdc://success"))
{
var querystring = tempUri.Substring(tempUri.IndexOf("#") + 1);
var split = querystring.Split('&');
@wadewegner
wadewegner / WebAuthenticationBroker.cs
Last active August 29, 2015 13:55
Sample code for using the WebAuthorizationBroker to authenticate with Salesforce.com using the User Agent auth flow.
private const string AuthorizationEndpointUrl =
"https://login.salesforce.com/services/oauth2/authorize";
private const string ConsumerKey = "YOURCONSUMERKEY";
private const string CallbackUrl = "sfdc://success";
async private void Page_Loaded(object sender, RoutedEventArgs e)
{
var startUrl = Common.FormatAuthUrl(AuthorizationEndpointUrl, ResponseTypes.Token, ConsumerKey,
WebUtility.UrlEncode(CallbackUrl), DisplayTypes.Popup);
var startUri = new Uri(startUrl);
@wadewegner
wadewegner / JekyllLinterUpdate.sh
Created February 3, 2014 18:21
I needed a way to refresh the Facebook meta data for all my Jekyll blog posts. This solution provided the easiest (and fastest) solution.
---
layout: nil
---
#!/bin/bash
{% for post in site.posts %}$(/usr/bin/open -a "/Applications/Google Chrome.app" 'https://developers.facebook.com/tools/debug/og/object?q=http://www.wadewegner.com{{ post.url }}')
{% endfor %}
@wadewegner
wadewegner / CallTokenRefreshAsync.cs
Created February 5, 2014 16:49
Code used by the Salesforce Toolkits for .NET to perform a token refresh
var auth = new AuthenticationClient();
await auth.TokenRefreshAsync(ConsumerKey, _token.RefreshToken);
@wadewegner
wadewegner / TestRefreshToken.cs
Created February 5, 2014 20:12
A simple demonstration of retry logic to simulate handling an invalid token and using the refresh token
_token.AccessToken = "GARBAGE"; // simulates the same behavior as expiration
var refreshToken = false;
do
{
if (refreshToken)
{
var auth = new AuthenticationClient();
await auth.TokenRefreshAsync(ConsumerKey, _token.RefreshToken);
private async void btnExpireToken_Click(object sender, RoutedEventArgs e)
{
_token.AccessToken = "GARBAGE";
var response = await RetryMethod<dynamic>(GetAccounts, 3, 0, RefreshToken);
}
private async Task RefreshToken()
{
var auth = new AuthenticationClient();
@wadewegner
wadewegner / Login.cs
Created February 20, 2014 01:34
Async login against either the Partner or Enterprise SOAP API
static async Task<T> Login<T>(string userName, string password, string orgId)
{
string url;
string soap;
string wsdlType;
if (typeof(T) == typeof(Enterprise.LoginResult))
{
url = "https://login.salesforce.com/services/Soap/c/29.0/" + orgId;
soap = string.Format(@"<s:Envelope xmlns:s=""http://schemas.xmlsoap.org/soap/envelope/""><s:Body xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""><login xmlns=""urn:enterprise.soap.sforce.com""><username>{0}</username><password>{1}</password></login></s:Body></s:Envelope>", userName, password);
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
var task = RunProgram();
task.Wait();
}
@wadewegner
wadewegner / OnNavigatedTo.cs
Last active August 29, 2015 14:00
Code for blog post on DeveloperForce.WindowsPhone.Login NuGet accelerator
var uri =
Common.FormatAuthUrl(
AuthorizationEndpointUrl,
ResponseTypes.Token,
ConsumerKey,
CallbackUrl,
DisplayTypes.Touch);
WebBrowser.Navigate(new Uri(uri, UriKind.Absolute));
@wadewegner
wadewegner / AccountsPage.cs
Last active August 29, 2015 14:00
Methods supporting the blog post for the Salesforce Accelerator for Windows Store Apps
private async void MainPage_Loaded(object sender, RoutedEventArgs e)
{
await GetAccessToken();
// navigate to AccountsPage.xaml
this.Frame.Navigate(typeof (AccountsPage));
}