Php 消息:CompactToken解析失败,错误代码:8004920A,代码:InvalidAuthenticationToken

Php 消息:CompactToken解析失败,错误代码:8004920A,代码:InvalidAuthenticationToken,php,azure-active-directory,microsoft-graph-api,Php,Azure Active Directory,Microsoft Graph Api,我想在我的应用程序中创建outlook联系人。首先,我进入下面的url https://login.live.com/oauth20_authorize.srf?client_id=“.$client\u id.&scope=wl.signin%20wl.basic%20wl.emails%20wl.contacts\u emails%20wl.contacts\u create&response\u type=code&redirect\u uri=”.$redirect\u uri 我希望这

我想在我的应用程序中创建outlook联系人。首先,我进入下面的url

https://login.live.com/oauth20_authorize.srf?client_id=“.$client\u id.&scope=wl.signin%20wl.basic%20wl.emails%20wl.contacts\u emails%20wl.contacts\u create&response\u type=code&redirect\u uri=”.$redirect\u uri

我希望这是一个古老的方式获得代币,所以我是

https://login.microsoftonline.com/daa825ce-e4fb-40d2-b2e6-3a2f25e62b7c/oauth2/token?client_id=“.$client\u id.&scope=wl.signin%20wl.basic%20wl.emails%20wl.contacts\u emails%20wl.contacts\u create&response\u type=code&redirect\u uri=”.$redirect\u uri

所以我在下面得到了这个错误

到,您应该打电话

POST https://graph.microsoft.com/v1.0/me/contacts
Content-type: application/json

{
  "givenName": "Pavel",
  "surname": "Bansky",
  "emailAddresses": [
    {
      "address": "pavelb@fabrikam.onmicrosoft.com",
      "name": "Pavel Bansky"
    }
  ],
  "businessPhones": [
    "+1 732 555 0102"
  ]
}
您可以按照以下步骤获取访问令牌。请记住授予您的应用程序
Contacts.ReadWrite
权限

步骤2和步骤3中的范围应为
https://graph.microsoft.com/Contacts.ReadWrite

更新:

要使用个人帐户,您需要设置支持的帐户类型,如下所示

授权端点应该使用公共,而不是指定的租户

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
client_id=562855f4-f3dd-40bb-b829-515ccb96ff3f
&response_type=code
&redirect_uri=http://localhost
&response_mode=fragment
&scope=https://graph.microsoft.com/Contacts.ReadWrite
&state=12345
还有令牌端点

https://login.microsoftonline.com/common/oauth2/v2.0/token
要知道,你应该打电话

POST https://graph.microsoft.com/v1.0/me/contacts
Content-type: application/json

{
  "givenName": "Pavel",
  "surname": "Bansky",
  "emailAddresses": [
    {
      "address": "pavelb@fabrikam.onmicrosoft.com",
      "name": "Pavel Bansky"
    }
  ],
  "businessPhones": [
    "+1 732 555 0102"
  ]
}
您可以按照以下步骤获取访问令牌。请记住授予您的应用程序
Contacts.ReadWrite
权限

步骤2和步骤3中的范围应为
https://graph.microsoft.com/Contacts.ReadWrite

更新:

要使用个人帐户,您需要设置支持的帐户类型,如下所示

授权端点应该使用公共,而不是指定的租户

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
client_id=562855f4-f3dd-40bb-b829-515ccb96ff3f
&response_type=code
&redirect_uri=http://localhost
&response_mode=fragment
&scope=https://graph.microsoft.com/Contacts.ReadWrite
&state=12345
还有令牌端点

https://login.microsoftonline.com/common/oauth2/v2.0/token

请将错误发布为文本,而不是图像请将错误发布为文本,而不是图像我认为这是用户需要登录应用程序的授权权限。如果我需要用户在后台添加联系人,那么我不需要登录。我认为这是应用程序权限。因此,每当我尝试使用应用程序权限时,我没有得到结果&得到错误“未找到资源”或“压缩令牌”。包括这一点,这项服务是免费的吗?&我不必在azure中接受任何订阅?可能是因为这个原因它没有获取响应?每当我点击这个url获得授权权限时?客户端id=f9d70f3f-08c1-4df3-9f9a-f3ce24b572a3&response\u type=code&redirect\u uri=http%3A%2F%2Flocalhost%2Fmyapp%2F&response\u mode=query&scope=offline\u访问%20用户。读取%20mail。读取%20contacts.readwrite&state=12345我获取“访问令牌验证失败。无效访问群体”我的代码在@ahmadlatif1084上方。是否要为您的个人帐户或azure ad帐户创建联系人?@ahmadlatif1084这与azure订阅无关。您试用过Microsoft图形浏览器吗@ahmadlatif1084如果你想为azure ad帐户创建联系人,必须为该ad帐户分配o365许可证,该许可证已经是电子邮件地址。我认为这是用户需要登录应用程序的授权权限。如果我需要用户在后台添加联系人,因此,我不需要登录。我认为这是应用程序权限。因此,每当我尝试使用应用程序权限时,我都没有得到结果&得到错误“未找到资源”或“压缩令牌”。包括这一点,这项服务是免费的吗?&我不必在azure中接受任何订阅?可能是因为这个原因它没有获取响应?每当我点击这个url获得授权权限时?客户端id=f9d70f3f-08c1-4df3-9f9a-f3ce24b572a3&response\u type=code&redirect\u uri=http%3A%2F%2Flocalhost%2Fmyapp%2F&response\u mode=query&scope=offline\u访问%20用户。读取%20mail。读取%20contacts.readwrite&state=12345我获取“访问令牌验证失败。无效访问群体”我的代码在@ahmadlatif1084上方。是否要为您的个人帐户或azure ad帐户创建联系人?@ahmadlatif1084这与azure订阅无关。您试用过Microsoft图形浏览器吗@ahmadlatif1084如果要为azure ad帐户创建联系人,必须为该ad帐户分配o365许可证,该许可证已经是电子邮件地址。