0
1つのドライブにAD v2 Oath認証コードフローを使用しようとしています。 アプリケーションがWebプラットフォームとしてアカウントに正しく登録されています。 私は認証コードを取得することですが、私はトークンを取得するためにそれを使用するつもりだとき、私は常に取得1つのドライブAPI認証コードリクエストは常に期限切れです
{
"error": "invalid_grant",
"error_description": "AADSTS70000: The provided value for the 'code' parameter is not valid. The code has expired.\r\nTrace ID: 95d076f5-6cfa-4de1-ba1a-a81066cf1200\r\nCorrelation ID: 4cddfa50-228b-431a-8746-483e77a273e1\r\nTimestamp: 2017-06-10 09:50:38Z",
"error_codes": [
70000
],
"timestamp": "2017-06-10 09:50:38Z",
"trace_id": "95d076f5-6cfa-4de1-ba1a-a81066cf1200",
"correlation_id": "4cddfa50-228b-431a-8746-483e77a273e1"
}
私の要求
Dim url As New System.Text.StringBuilder
url.Append("grant_type=authorization_code")
url.Append("&client_id=" + clientid)
url.Append("&client_secret=" + clientsecret)
url.Append("&redirect_uri=" + System.Web.HttpUtility.UrlEncode(redirecturl))
url.Append("&code=" + authcode)
url.Append("&scope=" + ("offline_access%20files.readwrite"))
Dim baseaddress = "https://login.microsoftonline.com/common/oauth2/v2.0/token"
Dim buffer As Byte() = System.Text.Encoding.ASCII.GetBytes(url.ToString)
Dim req = Net.HttpWebRequest.Create(baseaddress)
req.Proxy = Nothing
req.Method = "Post"
req.ContentType = "application/x-www-form-urlencoded"
Dim strm As System.IO.Stream = req.GetRequestStream()
strm.Write(buffer, 0, buffer.Length)
strm.Close()
Dim resp As System.Net.HttpWebResponse = req.GetResponse()
Dim response = New IO.StreamReader(resp.GetResponseStream, False).ReadToEnd
Return response