문서에 포함 된 코드 샘플에서는이 작업을 수행하는 방법을 보여줍니다. 간단히 살펴보면 모두의 "POST"메소드를 사용하고 POST에서 4 개의 필수 값을 전달합니다. 나는 샘플 코드를 찾고 제안하지만,이 같은 것을 보일 수의 기본 요소로 아래로 증류 : 위의 코드의
string request = string.Format("grant_type=client_credentials&client_id={0}&client_secret={1}&scope=http://api.microsofttranslator.com", HttpUtility.UrlEncode(clientId), HttpUtility.UrlEncode(clientSecret));
WebRequest webRequest = WebRequest.Create("https://datamarket.accesscontrol.windows.net/v2/OAuth2-13");
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "POST";
byte[] bytes = Encoding.ASCII.GetBytes(request);
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;
}
대부분은 샘플에서 private AdmAccessToken HttpPost(string DatamarketAccessUri, string requestDetails)
방법입니다.
AdmAccessToken
은 반환 된 값에 대한 속성이 샘플에 정의 된 클래스 :
access_token
token_type
expires_in
scope
그것은 매우 포괄적 인 샘플의 및 관련 부품을 얻기 위해 파고의 소량이 필요하지만 그 모든 거기에 내가 말할 수있는 것처럼 가까이에. 내가 간행 한 발췌 문장은 단순화를 위해 샘플의 다른 곳에서 수행 된 몇 가지 작업을 간단하게 결합했습니다.
import requests
import urllib
data = dict(
client_id='client_id',
client_secret='client_secret',
scope='http://api.microsofttranslator.com',
grant_type='client_credentials'
)
resp = requests.post(url='https://datamarket.accesscontrol.windows.net/v2/OAuth2-13', data=urllib.urlencode(data))
참고 :
출처
2013-05-11 07:56:21
Tim
+1 이것이 올바른 접근 방법 인 것 같습니다. yoru 게시물을 기반으로 일부 검색 않았다. http://forums.asp.net/t/1830114.aspx/1에서도 동일한 문제가 발견되었습니다. 코드가 다음을 반환합니다. 원격 서버에서 오류를 반환했습니다 : (400) 잘못된 요청입니다. 계속 노력하겠습니다 –
GutHub에서 찾은 AdmAccessToken https://github.com/matthiasxc/WinPhone-AzureTranslation/blob/master/My_Translation_App/Models/AdmAccessToken.cs –
감사의 말 Tim에게 세부 정보를 찾았습니다. 아주 이상한 MS 방법. –