首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >微软图形API -发送电子邮件- NoPermissionsInAccessToken

微软图形API -发送电子邮件- NoPermissionsInAccessToken
EN

Stack Overflow用户
提问于 2019-09-10 18:38:33
回答 1查看 535关注 0票数 1

我已经创建了一个使用Microsoft Graph API发送电子邮件的Ruby应用程序。我在没有用户的情况下获得访问令牌,基于:https://docs.microsoft.com/en-us/graph/auth-v2-service#5-use-the-access-token-to-call-microsoft-graph

代码语言:javascript
复制
url = URI.parse("https://login.microsoftonline.com/common/oauth2/v2.0/token")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = (url.scheme == "https")

req = Net::HTTP::Post.new(url.request_uri)
req.set_form_data({
    'client_id' => CLIENT_ID, 
    'client_secret' => CLIENT_SCERET,
    'grant_type' => 'client_credentials',
    'scope' => 'https://graph.microsoft.com/.default'
})
response = http.request(req)

我得到了令牌。

接下来,我希望将邮件发送给门户azure上使用我的应用程序的任何用户,这些用户对其具有api权限。

然后,我调用send_mail函数。

代码语言:javascript
复制
url = URI.parse("https://graph.microsoft.com/v1.0/users/{MYID}/sendMail")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = (url.scheme == "https")
req = Net::HTTP::Post.new(url.request_uri)
req["Authorization"] = "Bearer #{get_token_without_user}"
req["Content-type"] = "application/json"

req.set_form_data({
    "message": {
       "subject": "Meet for lunch?",
       "body": {
          "contentType": "Text",
          "content": "The new cafeteria is open."
        }
     },
     "toRecipients": [
        {
          "emailAddress": {
             "address": "to_email@gmail.com"
          }
     }],
     "saveToSentItems": "false"
})
response = http.request(req)

我收到这个错误:

那么,有没有人能告诉我我的错误在哪里?非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2019-09-11 05:23:35

我不知道Ruby --当通过网络发送时,作用域参数是URLEncoded吗?

抓住回应,看一看。它有access_token属性吗?如果是,请复制该属性的值并将其粘贴到https://jwt.ms中。在解码的令牌中查找作用域或角色-它应该与AAD门户中设置的内容相匹配。

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

https://stackoverflow.com/questions/57869026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档