Excel 获取Graph API的访问令牌
这是我第一次尝试调用图形API(使用VBA),但我仍然无法为此获取一个访问令牌。 虽然我已经阅读了文档,但我不知道在不强制用户登录的情况下,需要应用什么流来获取访问令牌。在我的OneDrive个人帐户上可以这样做吗 这是我试过的Excel 获取Graph API的访问令牌,excel,vba,Excel,Vba,这是我第一次尝试调用图形API(使用VBA),但我仍然无法为此获取一个访问令牌。 虽然我已经阅读了文档,但我不知道在不强制用户登录的情况下,需要应用什么流来获取访问令牌。在我的OneDrive个人帐户上可以这样做吗 这是我试过的 Sub Test_GetToken() Dim xml As New MSXML2.XMLHTTP60 Dim url As String url = "https://login.microsoftonline.com/namelles_t
Sub Test_GetToken()
Dim xml As New MSXML2.XMLHTTP60
Dim url As String
url = "https://login.microsoftonline.com/namelles_test@outlook.com/oauth2/v2.0/token"
url = url & "?client_id=eca0b14c-1154-4768-8e45-2cb5639b7e0d"
url = url & "grant_type=client_credentials"
url = url & "&client_secret=VksZ8FeDF5XiRfqTBsgs628"
url = url & "&resource=https://graph.microsoft.com"
xml.Open "POST", url, False
xml.setRequestHeader "application", "x-www-form-urlencoded"
xml.send ("")
Debug.Print "status=" & xml.Status, "readyState=" & xml.readyState
Debug.Print xml.responseText
Set xml = Nothing
End Sub
我创建了一个用于测试的帐户(用户名:nameless)_test@outlook.com,userpass:nameless1234)。因此,可以使用真正的凭证。
有人能告诉我我需要申请的流程以及请求是如何构建的吗?
提前感谢看起来您在代码中的电子邮件输入错误
url = "https://login.microsoftonline.com/namelles_test@outlook.com/oauth2/v2.0/token"
应该是:
url = "https://login.microsoftonline.com/nameless_test@outlook.com/oauth2/v2.0/token"
此外,根据您的评论,您似乎必须将grant\u type
放在请求主体中,而不是URL中的查询参数
xml.send ("grant_type=client_credentials")
谢谢你的快速回答。我已经修复了地址,但仍然得到以下错误:{“error”:“invalid_request”,“error_description”:“AADSTS90014:请求正文必须包含以下参数:'grant_type'。\r\n地址ID:efa6f9f2-cfa4-443a-929c-06eefb7a0d00\r\n相关ID:d09be614-0371-482c-8d58-084d5cf74126\r\n终止日期:2017-06-24 19:21:34Z,“error_code:[90014],“timestamp”:“2017-06-24 19:21:34Z”,“trace_id”:“efa6f9f2-cfa4-443a-929c-06eefb7a0d00”,“correlation_id”:“d09be614-0371-482c-8d58-084d5cf74126”}这里的字符串:url=url和“grant_type=client_credentials”不应该以符号开头吗?