首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >图形API -创建用户时的ResourceNotFound

图形API -创建用户时的ResourceNotFound
EN

Stack Overflow用户
提问于 2022-01-05 01:22:30
回答 2查看 222关注 0票数 0

我已经尝试了几天了,我已经重复检查了所有的例子,并试图搜索我的错误反应,但我无法想出任何东西。

我已经成功地将图形api调用添加到我的应用程序中,当我在/users端点上执行GET时,它会很好地返回我的AD用户,下面的代码就是我尝试创建用户的代码,但是每次我得到ResourceNotFound响应时都会这样做。

值得注意的是,起初我收到了一条错误消息,它没有说明它找不到的资源,但现在错误消息显示“资源”User_不存在.

GUID每次都会发生变化,这意味着它正在创建该对象,然后尝试使用它做一些事情,但是在某个API上失败了。

创建用户功能-

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Public Function CreateUser(user As User) As String
            Dim app As IConfidentialClientApplication = MsalAppBuilder.BuildConfidentialClientApplication(ClaimsPrincipal.Current)
    
            Dim accountId = ClaimsPrincipal.Current.GetMsalAccountId()            
            Dim account = app.GetAccountAsync(accountId).Result           
    
            Dim result As AuthenticationResult
            Dim scopes As String() = {"https://graph.microsoft.com/.default"}
    
            Try
                result = app.AcquireTokenSilent(scopes, account).ExecuteAsync().Result
    
            Catch msalEx As MsalUiRequiredException
                Return msalEx.Message
            Catch ex As Exception
                result = app.AcquireTokenForClient(scopes).ExecuteAsync().Result
            End Try
    
    
            Dim client = New HttpClient()
            Dim request As New HttpRequestMessage(HttpMethod.Post, "https://graph.microsoft.com/v1.0/users")
            request.Headers.Authorization = New AuthenticationHeaderValue("Bearer", result.AccessToken)
    
            Dim json = JsonConvert.SerializeObject(user)
            request.Content = New StringContent(json, Encoding.UTF8, "application/json")
    
            Dim response = client.SendAsync(request).Result
    
            If response.Content IsNot Nothing Then
                Dim responseString = response.Content.ReadAsStringAsync().Result
                Return responseString
            End If
            Return ""
        End Function

我还注意到,这个应用程序从来不包含任何用户,所以范围只标记总是被调用的。

EN

回答 2

Stack Overflow用户

发布于 2022-01-06 03:03:11

试几样东西-

  1. 建议使用相同的令牌和JSON内容,并查看是否可以利用邮递员并调用相同的API来验证您的JSON(请求体)、URL和令牌。
  2. 使用jwt.ms并检查您的令牌是否具有所有必要的声明。
  3. 确保您已经为App.

提供了所需的权限。

如果您仍然面临同样的问题,请使用客户端请求id和时间戳进行恢复,这样我就可以更好地检查它。

谢谢。

票数 0
EN

Stack Overflow用户

发布于 2022-01-06 04:06:12

在这里发布之后,我还请求microsoft支持小组提供帮助。

他们建议我使用图形资源管理器再试一次,所以在做了这两件事之后,我在失眠症中重新发送了我的请求,实际上,当我使用图形资源管理器,仍然使用来自失眠和代码的BadRequest时,我得到了一个成功的响应。

这些请求之间的区别是请求主体。

我最初构建的是使用这里的图文档中提供的代码示例(示例1) - https://learn.microsoft.com/en-us/graph/api/user-post-users?view=graph-rest-1.0&tabs=http

为了节省你的时间,这看起来就像-

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
POST https://graph.microsoft.com/v1.0/users
Content-type: application/json

{
  "accountEnabled": true,
  "displayName": "Adele Vance",
  "mailNickname": "AdeleV",
  "userPrincipalName": "AdeleV@contoso.onmicrosoft.com",
  "passwordProfile" : {
    "forceChangePasswordNextSignIn": true,
    "password": "xWwvJ]6NMw+bWH-d"
  }
}

这就是请求体在图形浏览器中的样子-

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
        "accountEnabled": true,
        "city": "Seattle",
        "country": "United States",
        "department": "Sales & Marketing",
        "displayName": "Melissa Darrow",
        "givenName": "Melissa",
        "jobTitle": "Marketing Director",
        "mailNickname": "MelissaD",
        "passwordPolicies": "DisablePasswordExpiration",
        "passwordProfile": {
            "password": "b85dba0d-be1b-a59a-8332-6821b138674d",
            "forceChangePasswordNextSignIn": false
        },
        "officeLocation": "131/1105",
        "postalCode": "98052",
        "preferredLanguage": "en-US",
        "state": "WA",
        "streetAddress": "9256 Towne Center Dr., Suite 400",
        "surname": "Darrow",
        "mobilePhone": "+1 206 555 0110",
        "usageLocation": "US",
        "userPrincipalName": "MelissaD@{domain}"
}

在更改代码模型以匹配第二个请求体之后,我现在在代码中获得了成功的响应,并测试了我将旧请求体留在失眠症中的理论,并使用一个新的令牌对请求表示不满,它返回BadRequest,而代码返回成功。

我不能百分之百确定丢失的属性是什么,也许只是密码策略。如果微软给我更多的洞察力,我会在这里更新。

希望这能为其他人提供一些洞察力,因为我自己确实很难找到这方面的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70590440

复制
相关文章
jq 判断是否为空,为空隐藏指定 div
<style>.mydiv{ width:300px; height:300px; background:red;}</style> <div class="mydiv">     <div class="content">          这是一句话,删除的话会让 mydiv display:none;          </div> </div> <script src="https://lib.baomitu.com/jquery/3.4.1/jquery.min.js"></script> <sc
Savalone
2020/02/11
7.1K0
python判断是否为空_python 判断对象是否为空
在实际的工作当中,我们难免要与空值打交道,相信不少初学者都会写出下面的代码:if a is None:
全栈程序员站长
2022/07/01
10.5K0
java判断空对象为空_Java判断对象是否为空(包括null ,””)的方法[通俗易懂]
public static boolean isEmpty(Object obj)
全栈程序员站长
2022/06/25
7K0
java如何判断对象为空_java对象如何判断是否为空
在实际书写代码的时候,经常会因为对象为空,而抛出空指针异常java.lang.NullPointerException。
全栈程序员站长
2022/06/25
13.4K0
java如何判断对象为空_java对象如何判断是否为空
JavaScript中为空判断
摘要总结:本文介绍了JavaScript中为空判断的不同情况,包括判断字符串是否为空、变量是否被定义和初始化过。通过这些判断,可以帮助开发人员编写更加健壮的代码。
林老师带你学编程
2018/01/03
3.9K0
Java Optional 初始为空
Optional<QualificationStateLabelInfo> stateSpecificLabel = null;
HoneyMoose
2022/05/18
2.7K0
Java Optional 初始为空
java判断list为空
if(null == list || list.size() ==0 ){ }
似水的流年
2018/01/12
4.8K0
as3中ProgressEvent的bytesTotal始终为0
遇到很奇怪的问题,as3中监听资源下载的PROGRESS事件(ProgressEvent.PROGRESS),它的bytesLoaded属性倒是正常的,但bytesTotal属性却始终为0,结果是导致了得到的下载比率为无穷大(Infinity)
meteoric
2018/11/15
8950
UrlReferrer为空的问题?
官方解释:获取有关客户端上次请求的 URL 的信息,该请求链接到当前的 URL。 1.也就是说,如果用Request.Redirect之后,再用Request.UrlReferrer是得不到前一个页面的链接的,因为这不是客户端的请求。 2.既然服务端不行,那换个思路:在客户端用js导航如何?比如下面这样 A.aspx上用window.location='B.aspx' 但实践证明在B.aspx上用Request.UrlReferrer仍然为空,即js导航也不行! 3.用A链接试一下 A.aspx上写一段ht
菩提树下的杨过
2018/01/23
2.4K0
java判断list为空
if(null == list || list.size() ==0 ){ } list.isEmpty()和list.size()==0 没有区别 isEmpty()判断有没有元素 而
似水的流年
2018/01/18
3.6K0
java判断list为空
if(null == list || list.size() ==0 ){ } list.isEmpty()和list.size()==0 没有区别 isEmpty()判断有没有元素 而size()返
似水的流年
2019/12/10
3.5K0
jdbctemplate查询为空报错_java空指针异常举例
Dao类是不能直接new出来的必须是通过 ApplicationContext applicationContext= new
全栈程序员站长
2022/11/17
3.1K0
使用“空”对象替代引用是否为空判断
使用Null对象替代引用是否为空判断 编程语言中最常见运行时异常非NullPointerException莫属,只要程序依赖于外部的输入数据,比如说http请求传递的查询字符串参数、关系数据库连接、磁盘文件读取,空引用异常就无法避免。通常,程序需要满足某些条件才能正常的往下执行,假如这些条件依赖外部输入数据,而这些外部输入的数据肯定无法保证百分百不出错,比如说网络连接失败、数据库用户名密码错误等,当程序被这些节外生枝的障碍打断时,空引用异常就极有可能被引发。 比如说,原本我们调用一个方法,这个方法会执行连接
用户1608022
2018/04/11
7.6K0
java怎么判断对象为空_java中怎么判断对象是否为空
一种是org.apache.commons.lang3包下的;另一种是org.springframework.util包下的。
全栈程序员站长
2022/06/28
6.8K0
java怎么判断对象为空_java中怎么判断对象是否为空
@NacosInjected private NamingService namingService 为空
发布者:全栈程序员栈长,转转请注明出处:https://javaforall.cn/2185.html原文链接:
全栈程序员站长
2021/04/07
2.3K0
什么?字符串为空?
当字符串为null,undefined,NaN,0,false,""这几个时,if(value)的结果都为false,if(!value)包含了我们常见的空值情况,如果你想要简便的方式,便可以使用它
说故事的五公子
2020/07/21
1.6K0
PHP 检测变量是否为空
注意:字符串"0.0"、字符串"00"、包括一个空格字符的字符串" "、字符串"false" 、整型 -1 都不为 false:
德顺
2019/11/13
7.2K0
java 对象为空判断_java中判断对象是否为空的方法
首先,直接使用 object == null 去判断,对象为null的时候返回true,不为null的时候返回false。然后,在object != null 为true的情况下,进一步去判断对象的所有属性是否为null。
全栈程序员站长
2022/08/15
11.5K0
java 对象为空判断_java中判断对象是否为空的方法
js判断map是否为空
补记:后台传递过来的是map集合,dataType返回值类型应该是json类型,此时,可以直接使用:JSON.parse(data);这样得到的结果是object类型,然后我们直接判断它的长度即可。
全栈程序员站长
2022/09/07
15.2K0
vue判断map是否为空
for in 循环判断 var obj = {}; var b = function() { for(var key in obj) { return false; } return true; } alert(b());//true
全栈程序员站长
2022/09/07
4.2K0

相似问题

将外部脚本与Zend Framework集成

62

如何将PayPal与Zend Framework集成

30

Zend Framework与Facebook Connect的集成

44

Zend Framework插件?

22

如何将Zend Framework MVC与现有站点集成

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文