2017-06-24 146 views
0

これは私の最初のGraph API(VBA付き)を呼び出す試みですが、まだこれに対して1つのアクセストークンを取得できませんでした。 ドキュメントを読んだことがありますが、ユーザーに強制的にログインさせずにアクセストークンを取得するために適用する必要のあるフローはわかりません。これはOneDrive Personalアカウントで可能ですか?ここでVBAを使用したGraph APIのアクセストークンを取得

は私が(:[email protected]、userpass:nameless1234名)だけで、テスト用のアカウントを作成し

Sub Test_GetToken() 

    Dim xml As New MSXML2.XMLHTTP60 
    Dim url As String 

    url = "https://login.microsoftonline.com/[email protected]/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 

を試してきたものです。したがって、実際の資格情報を使用することができます。 申し込みが必要なフローとリクエストがどのくらい正確に作成されたかを誰かに見せてもらえますか? ありがとうございます

答えて

0

あなたのコードにメールが間違っているようです。

url = "https://login.microsoftonline.com/[email protected]/oauth2/v2.0/token" 

は次のようになります。

url = "https://login.microsoftonline.com/[email protected]/oauth2/v2.0/token" 

はまた、あなたのコメントに基づいて、あなたが要求の代わりに、URLのクエリパラメータのボディにgrant_typeを入れて持っているようです。

xml.send ("grant_type=client_credentials") 
+0

ありがとうございました。 {"error": "invalid_request"、 "error_description": "AADSTS90014:リクエストボディに 'grant_type'というパラメータが含まれている必要があります。\ r \ nTrace ID:efa6f9f2-相関ID:d09be614-0371-482c-8d58-084d5cf74126 \ r \ nTimestamp:2017-06-24 19:21:34Z "、" error_codes ":[90014]、"タイムスタンプ " : "2017-06-24 19:21:34Z"、 "trace_id": "efa6f9f2-cfa4-443a-929c-06eefb7a0d00"、 "correlation_id": "d09be614-0371-482c-8d58-084d5cf74126"} – TudyBTH

+0

@TudyBTH I答えを更新する –

関連する問題