/// <summary> /// Makes a request to get an access token using the code returned when GitHub.com redirects back from the URL /// <see cref="GetGitHubLoginUrl">GitHub login url</see> to the application. /// </summary> /// <remarks> /// If the user accepts your request, GitHub redirects back to your site with a temporary code in a code /// parameter as well as the state you provided in the previous step in a state parameter. If the states don’t /// match, the request has been created by a third party and the process should be aborted. Exchange this for /// an access token using this method. /// </remarks> /// <param name="request"></param> /// <returns></returns> public async Task<OauthToken> CreateAccessToken(OauthTokenRequest request) { Ensure.ArgumentNotNull(request, "request"); var endPoint = ApiUrls.OauthAccessToken(); var body = new FormUrlEncodedContent(request.ToParametersDictionary()); var response = await connection.Post<OauthToken>(endPoint, body, "application/json", null, hostAddress); return response.BodyAsObject; }
/// <summary> /// Makes a request to get an access token using the code returned when GitHub.com redirects back from the URL /// <see cref="GetGitHubLoginUrl">GitHub login url</see> to the application. /// </summary> /// <remarks> /// If the user accepts your request, GitHub redirects back to your site with a temporary code in a code /// parameter as well as the state you provided in the previous step in a state parameter. If the states don’t /// match, the request has been created by a third party and the process should be aborted. Exchange this for /// an access token using this method. /// </remarks> /// <param name="request"></param> /// <returns></returns> public async Task<OauthToken> CreateAccessToken(OauthTokenRequest request) { Ensure.ArgumentNotNull(request, "request"); var endPoint = ApiUrls.OauthAccessToken(); var body = new FormUrlEncodedContent(request.ToParametersDictionary()); var response = await connection.Post<OauthToken>(endPoint, body, "application/json", null, hostAddress); return response.Body; }