public static AdmAccessToken GetAccessToken()
        {
            //Get Client Id and Client Secret from https://datamarket.azure.com/developer/applications/
            AdmAuthentication admAuth = new AdmAuthentication("9a086c79-36a3-487a-9e87-8332ed05090d", "Tkpy6Rd682QCPaEvxKcDFe42ssMpMbL435yFJJkEjao=");

            //Gets acess token
            AdmAccessToken admToken = admAuth.GetAccessToken();

            return(admToken);
        }
 /// <summary>
 /// Creates token by authenticate clientId and clientSecret.
 /// </summary>
 /// <param name="clientId"></param>
 /// <param name="clientSecret"></param>
 public AdmAuthentication(string clientId, string clientSecret)
 {
     this.clientId     = clientId;
     this.clientSecret = clientSecret;
     //If clientid or client secret has special characters, encode before sending request
     this.request = string.Format(
         "grant_type=client_credentials&client_id={0}&client_secret={1}&scope=http://api.microsofttranslator.com",
         HttpUtility.UrlEncode(clientId), HttpUtility.UrlEncode(clientSecret));
     this.token = HttpPost(DatamarketAccessUri, this.request);
     //renew the token every specfied minutes
     accessTokenRenewer = new Timer(OnTokenExpiredCallback, this, TimeSpan.FromMinutes(RefreshTokenDuration), TimeSpan.FromMilliseconds(-1));
 }
        private AdmAccessToken HttpPost(string DatamarketAccessUri, string requestDetails)
        {
            //Prepare OAuth request
            WebRequest webRequest = WebRequest.Create(DatamarketAccessUri);

            webRequest.ContentType = "application/x-www-form-urlencoded";
            webRequest.Method      = "POST";
            byte[] bytes = Encoding.ASCII.GetBytes(requestDetails);
            webRequest.ContentLength = bytes.Length;
            using (Stream outputStream = webRequest.GetRequestStream())
            {
                outputStream.Write(bytes, 0, bytes.Length);
            }
            using (WebResponse webResponse = webRequest.GetResponse())
            {
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(AdmAccessToken));
                //Get deserialized object from JSON stream
                AdmAccessToken token = (AdmAccessToken)serializer.ReadObject(webResponse.GetResponseStream());
                return(token);
            }
        }