Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Microsoft Graph API-错误403“;权限不足,无法完成操作”;_R_Microsoft Graph Api - Fatal编程技术网

Microsoft Graph API-错误403“;权限不足,无法完成操作”;

Microsoft Graph API-错误403“;权限不足,无法完成操作”;,r,microsoft-graph-api,R,Microsoft Graph Api,我正在尝试使用AzureR系列的R包通过Graph API与Outlook交互。使用Microsoft365R,我有以下代码: outl <- get_business_outlook( tenant = tenant_id, app = client_id, password = client_secret ) outlMicrosoft365R/AzureGraph作者。在显示的代码中,无论是使用get\u business\u onedrive()还是create\u

我正在尝试使用AzureR系列的R包通过Graph API与Outlook交互。使用Microsoft365R,我有以下代码:

outl <- get_business_outlook(
  tenant = tenant_id,
  app = client_id,
  password = client_secret
)

outlMicrosoft365R/AzureGraph作者。在显示的代码中,无论是使用
get\u business\u onedrive()
还是
create\u graph\u login()
,您都是作为应用程序而不是用户进行身份验证。这意味着不涉及任何用户帐户,因此您无法查看用户详细信息或发送电子邮件

要作为用户进行身份验证,请运行

# Microsoft365R
get_business_outlook("tenant_id", app="client_id")

# AzureGraph
create_graph_login("tenant_id", app="client_id")
即,不带
密码
参数。如果R打开一个浏览器窗口供您登录Azure(或显示它已成功登录),您应该知道它正在工作


AzureAuth软件包的最新版本提供了一个详细的示例,详细解释了各种身份验证场景
AzureAuth::get_azure_token
是Microsoft365R和AzureGraph用于获取OAuth token的底层函数,您可以在此处从
get_business_outlook
create_graph\u login

Microsoft365R/AzureGraph作者传递小插图中提到的参数。在显示的代码中,无论是使用
get\u business\u onedrive()
还是
create\u graph\u login()
,您都是作为应用程序而不是用户进行身份验证。这意味着不涉及任何用户帐户,因此您无法查看用户详细信息或发送电子邮件

要作为用户进行身份验证,请运行

# Microsoft365R
get_business_outlook("tenant_id", app="client_id")

# AzureGraph
create_graph_login("tenant_id", app="client_id")
即,不带
密码
参数。如果R打开一个浏览器窗口供您登录Azure(或显示它已成功登录),您应该知道它正在工作


AzureAuth软件包的最新版本提供了一个详细的示例,详细解释了各种身份验证场景
AzureAuth::get_azure_token
是Microsoft365R和AzureGraph用于获取OAuth token的底层函数,您可以从
get\u business\u outlook
create\u graph\u login

中传递vignette中提到的参数,通过将访问令牌放在中来检查您的访问令牌,并查看您是否拥有具有上述所有权限的“scp”声明。@ShivaKeshavVarma Hi,access token中没有此类信息。access token中应该有权限,仅使用“scp”声明,它将了解您是否被授权以及调用Graph API所需的权限。我很清楚我已经访问了这个应用程序,因为我得到了这个秘密并拿回了一个令牌,但我想我不明白的是我是如何授权自己的。当创建登录名时,我尝试指定作用域,但是我只得到一个错误,上面说“作用域无效”。是的,这就是上面@ShivaKeshavVarma所说的。如果要访问受保护的资源(例如,Microsoft Graph),则需要获取具有所需权限/作用域的令牌。为了解决这个问题,您可以使用MicrosoftGraphExplorer,以相同的用户身份登录,调用相同的GraphAPI调用,它将适用于您。您可以复制令牌,使用验证令牌(或者您可能希望将其与您的令牌进行比较)。。。!!通过将访问令牌放入中检查您的访问令牌,并查看您是否拥有具有上述所有权限的“scp”声明。@ShivaKeshavVarma您好,访问令牌中没有此类信息。accessToken中应该有权限,仅使用“scp”声明,它将了解您是否获得授权以及调用Graph API的要求。我很清楚我已经访问了这个应用程序,因为我得到了这个秘密并拿回了一个令牌,但我想我不明白的是我是如何授权自己的。当创建登录名时,我尝试指定作用域,但是我只得到一个错误,上面说“作用域无效”。是的,这就是上面@ShivaKeshavVarma所说的。如果要访问受保护的资源(例如,Microsoft Graph),则需要获取具有所需权限/作用域的令牌。为了解决这个问题,您可以使用MicrosoftGraphExplorer,以相同的用户身份登录,调用相同的GraphAPI调用,它将适用于您。您可以复制令牌,使用验证令牌(或者您可能希望将其与您的令牌进行比较)。。。!!