C# Microsoft Graph-尝试获取电子邮件列表时发出400个错误请求
尝试从我的Office365邮箱获取电子邮件,使用作为引用-使用。我可以拿到不记名代币。JWT的角色数组包含:C# Microsoft Graph-尝试获取电子邮件列表时发出400个错误请求,c#,oauth-2.0,office365,microsoft-graph-api,C#,Oauth 2.0,Office365,Microsoft Graph Api,尝试从我的Office365邮箱获取电子邮件,使用作为引用-使用。我可以拿到不记名代币。JWT的角色数组包含: roles: [ "Mail.ReadWrite", "Mail.Read" ] 这是我正在使用的代码。它在“最后一行”上得到400分 var web = new WebClient(); web.Headers.Add(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded
roles: [ "Mail.ReadWrite", "Mail.Read" ]
这是我正在使用的代码。它在“最后一行”上得到400分
var web = new WebClient();
web.Headers.Add(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded");
url = $"https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token";
var reqparm = new System.Collections.Specialized.NameValueCollection();
reqparm.Add("client_id", cliID);
reqparm.Add("scope", "https://graph.microsoft.com/.default");
reqparm.Add("client_secret", secret);
reqparm.Add("grant_type", "client_credentials");
var responsebytes = web.UploadValues(url, "POST", reqparm);
string responsebody = Encoding.UTF8.GetString(responsebytes);
var data = JsonConvert.DeserializeObject<RootObject>(responsebody);
web = new WebClient();
web.Headers.Add( HttpRequestHeader.Authorization, "Bearer " + data.access_token);
var url2 = "https://graph.microsoft.com/v1.0/me/messages";
var messages = web.DownloadString(url2);
在没有用户的情况下进行身份验证时,您不能使用
/me
。这是因为Graph的上下文中没有要将/me
转换为的用户
对于此场景,您需要指定要为其列出消息的user
资源:
https://graph.microsoft.com/v1.0/users/{userPrincipalName}/messages
在没有用户的情况下进行身份验证时,您不能使用
/me
。这是因为Graph的上下文中没有要将/me
转换为的用户
对于此场景,您需要指定要为其列出消息的user
资源:
https://graph.microsoft.com/v1.0/users/{userPrincipalName}/messages
https://graph.microsoft.com/v1.0/users/{userPrincipalName}/消息
正如@Marcleleur提到的,是用户prinicpal;因此我在电子邮件中尝试了用户名,但没有成功。我使用了校长和中提琴的完整电子邮件地址。
https://graph.microsoft.com/v1.0/users/{userPrincipalName}/消息
正如@Marcleleur提到的,是用户prinicpal;因此我在电子邮件中尝试了用户名,但没有成功。我使用了完整的电子邮件地址来表示校长和中提琴!@Marcleleur-我想这就是令牌的用途,用来标识“我”“,因为我在请求令牌时使用了租户ID。不管怎样,自从发布这个(后来放弃了)我尝试了那个URL,但是使用了电子邮件地址中的用户名,得到了404。前任:Joe@Domain.com---我会尝试:/users/joe/messages。我没有在Office365中设置帐户-我应该向管理员询问哪些信息?谢谢@Marcleleur-我想这就是令牌的用途,用来标识“我”,因为我在请求令牌时使用了租户ID。不管怎样,自从发布这个(后来放弃了)我尝试了那个URL,但是使用了电子邮件地址中的用户名,得到了404。前任:Joe@Domain.com---我会尝试:/users/joe/messages。我没有在Office365中设置帐户-我应该向管理员询问哪些信息?谢谢