首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在javascript中使用Microsoft Authentication Library (MSAL)获取个人Microsoft帐户的联系人?

如何在javascript中使用Microsoft Authentication Library (MSAL)获取个人Microsoft帐户的联系人?
EN

Stack Overflow用户
提问于 2019-06-03 16:48:05
回答 1查看 410关注 0票数 0

我已经使用Azure AD仪表板实现了MSAL库,授予了user.read,user.read.all,contacts.read,contacts.read.all,openid,profile,directory.read.all的权限。租户(同一组织中的帐户)能够登录他们的帐户,并能够使用访问令牌获取他们的联系人。当我尝试任何微软个人帐户时,登录工作良好,能够获得访问令牌,但当我使用端点(https://graph.microsoft.com/v1.0/me/contacts)进行microsoft Graph api调用时,我得到了401Authorated错误。

当我检查请求的响应对象以获取访问令牌时,对于租户,响应包括范围数组,如下所示:

代码语言:javascript
运行
AI代码解释
复制
scopes: Array(13)
0: "Calendars.Read"
1: "Calendars.Read.Shared"
2: "Calendars.ReadWrite"
3: "Calendars.ReadWrite.Shared"
4: "Contacts.Read"
5: "Directory.AccessAsUser.All"
6: "Directory.Read.All"
7: "openid"
8: "profile"
9: "User.Read"
10: "User.Read.All"
11: "User.ReadBasic.All"
12: "email"

对于个人账户,它是:

代码语言:javascript
运行
AI代码解释
复制
scopes: Array(2)
0: "openid"
1: "profile"

不知何故,个人帐户无法获得管理员授予的作用域的权限。

我的已注册应用程序还支持以下帐户类型:

代码语言:javascript
运行
AI代码解释
复制
Accounts in any organizational directory and personal Microsoft accounts (e.g. Skype, Xbox, Outlook.com)
All users with a work or school, or personal Microsoft account can use your application or API. This includes Office 365 subscribers.

下面是我的代码中用于登录用户的配置:

代码语言:javascript
运行
AI代码解释
复制
let msalConfig = {
  auth: {
    clientId: <client_id>
};
let signinScopes = ['user.read.all', 'contacts.read'];

以及我发出访问令牌请求时传递的作用域:

代码语言:javascript
运行
AI代码解释
复制
let tokenRequest = {
          scopes: ["user.read.all"]
        };

当我传递下面的令牌时,它会给出错误“请求被拒绝,因为请求的一个或多个作用域未经授权或已过期。用户必须首先登录并授予客户端应用程序对所请求作用域的访问权限。”

代码语言:javascript
运行
AI代码解释
复制
 var tokenRequest = {
          scopes: ["user.read.all", "contacts.read"]
        };

我希望获得所有在Microsoft帐户中注册的联系人。

EN

回答 1

Stack Overflow用户

发布于 2019-06-03 18:10:22

您不能为微软(又称个人)帐户申请user.read.all

作用域请求应如下所示:

代码语言:javascript
运行
AI代码解释
复制
scopes: ["user.read", "contacts.read"]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56431511

复制
相关文章
Scrapy 使用代理IP并将输出保存到 jsonline
1、使用 scrapy 中间件,您需要在 settings.py 中启用 HttpProxyMiddleware,例如:
jackcode
2023/05/30
3240
Scrapy 使用代理IP并将输出保存到 jsonline
使用 PHP 函数对变量进行比较
使用 PHP 函数对变量 $x 进行比较 表达式 gettype() empty() is_null() isset() boolean : if($x) $x = ""; string TRUE FALSE TRUE FALSE $x = null; NULL TRUE TRUE FALSE FALSE var $x; NULL TRUE TRUE FALSE FALSE $x is undefined NULL TRUE TRUE FALSE FALSE $x = array(); array TRUE
Denis
2023/04/15
1.4K0
在Scrapy中如何使用aiohttp?
当我们从一些代理IP供应商购买代理IP时,他们可能是提供一个网址供我们查询当前可用的代理IP。我们周期性访问这个网址,拿到最新的IP,再分给爬虫使用。
青南
2020/07/16
6.7K0
Scrapy输出中文保存中文
scrapy在保存json文件时容易乱码 settings.py文件改动: ITEM_PIPELINES = { 'tutorial.pipelines.TutorialPipeline': 300, } pipeline.py文件改动: import json import codecs class TutorialPipeline(object): def __init__(self, spider): self.file = codecs.open('data_cn
林清猫耳
2019/03/04
2.8K0
混合线性模型如何进行多重比较
这里,得到的LSD = 6.708889, 多重比较中,用水平的平均值的差值,与LSD比较,如果大于LSD,则认为两水平达到显著性差异。
邓飞
2019/11/04
3.7K0
如何使用Scrapy框架抓取电影数据
随着互联网的普及和电影市场的繁荣,越来越多的人开始关注电影排行榜和评分,了解电影的排行榜和评分可以帮助我们更好地了解观众的喜好和市场趋势.豆瓣电影是一个广受欢迎的电影评分和评论网站,它提供了丰富的电影信息和用户评价。因此,爬取豆瓣电影排行榜的数据对于电影从业者和电影爱好者来说都具有重要意义。
小白学大数据
2023/09/25
3930
如何对矩阵中的所有值进行比较?
需求相对比较明确,就是在矩阵中显示的值,需要进行整体比较,而不是单个字段值直接进行的比较。如图1所示,确认矩阵中最大值或者最小值。
逍遥之
2020/05/14
8.2K0
【说站】java如何进行数据的比较
首先,Java中的数据存储在JVM中,而基本类型的数据存储在JVM的局部变量表中,也可以理解为所谓的“栈”。
很酷的站长
2022/11/23
8460
【说站】java如何进行数据的比较
【说站】python比较运算如何使用
1、除数值操作外,整数型和浮点型还可以进行比较操作,即比较两个数值的大小。比较结果是布尔值。
很酷的站长
2022/11/23
5960
【说站】python比较运算如何使用
Scrapy ---- 使用步骤
python、scrapy和pycharm已经安装好,并且python和scrapy环境已经配置好。scrapy安装比较简单的方法是通过pycharm IDE进行安装。 一、创建工程 命令行输入:sc
SuperHeroes
2018/05/30
7800
Scrapy框架的使用之Scrapy入门
接下来介绍一个简单的项目,完成一遍Scrapy抓取流程。通过这个过程,我们可以对Scrapy的基本用法和原理有大体了解。 一、准备工作 本节要完成的任务如下。 创建一个Scrapy项目。 创建一个Spider来抓取站点和处理数据。 通过命令行将抓取的内容导出。 将抓取的内容保存的到MongoDB数据库。 二、准备工作 我们需要安装好Scrapy框架、MongoDB和PyMongo库。 三、创建项目 创建一个Scrapy项目,项目文件可以直接用scrapy命令生成,命令如下所示: scrapy st
崔庆才
2018/06/25
1.4K0
scrapy 进阶使用
乐百川
2018/01/09
2K0
scrapy 进阶使用
学习爬虫之Scrapy框架学习(六)–1.直接使用scrapy;使用scrapy管道;使用scrapy的媒体管道类进行猫咪图片存储。媒体管道类学习。自建媒体管道类存储图片
大家好,又见面了,我是你们的朋友全栈君。 1.引入: 先来看个小案例:使用scrapy爬取百度图片。( 目标百度图片URL: https://image.baidu.com/search/
全栈程序员站长
2022/09/13
4160
scrapy爬虫笔记(1):scrapy基本使用
之前在写爬虫时,都是自己写整个爬取过程,例如向目标网站发起请求、解析网站、提取数据、下载数据等,需要自己定义这些实现方法等
冰霜
2022/03/15
3760
scrapy爬虫笔记(1):scrapy基本使用
如何使用tsharkVM分析tshark的输出
tsharkVM这个项目旨在构建一台虚拟机,以帮助广大研究人员分析tshark的输出结果。虚拟设备是使用vagrant构建的,它可以使用预安装和预配置的ELK堆栈构建Debian 10。
FB客服
2022/11/14
1.5K0
如何使用tsharkVM分析tshark的输出
PyCharm下进行Scrapy项目的调试
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/article/details/72835653
大黄大黄大黄
2018/09/14
1.3K0
PyCharm下进行Scrapy项目的调试
【说站】python变量如何进行格式化输出
以上就是python变量进行格式化输出的方法,希望对大家有所帮助。更多Python学习指路:python基础教程
很酷的站长
2022/11/23
6950
【说站】python变量如何进行格式化输出
在windows下如何新建爬虫虚拟环境和进行Scrapy安装
Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
Python进阶者
2019/03/04
4730
在windows下如何新建爬虫虚拟环境和进行Scrapy安装
如何使用 scrapy.Request.from_curl() 方法将 cURL 命令转换为 Scrapy 请求
Scrapy 是一个用 Python 编写的开源框架,用于快速、高效地抓取网页数据。Scrapy 提供了许多强大的功能,如选择器、中间件、管道、信号等,让开发者可以轻松地定制自己的爬虫程序。
jackcode
2023/08/08
4510
如何使用 scrapy.Request.from_curl() 方法将 cURL 命令转换为 Scrapy 请求
在windows下如何新建爬虫虚拟环境和进行scrapy安装
Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
Python进阶者
2019/02/11
7150
在windows下如何新建爬虫虚拟环境和进行scrapy安装

相似问题

使用jq计算给定JSON结构中键值对的数目

15

Java:将键值对附加到嵌套的json对象

13

将嵌套的Json转换为单个键值对

23

将Json嵌套映射转换为键值对

336

将MySQL层次结构数据转换为JSON字符串

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档