我已关注此https://msdn.microsoft.com/en-us/office/office365/howto/building-service-apps-in-office-365链接 在Office365中设置Daemon或Server Application to Web API身份验证方法以获取访问令牌。
示例访问令牌请求在下面给出
POST https://login.microsoftonline.com/{tenant-id}/oauth2/token
grant_type : client_credentials
client_id : {clientId}
client_secret : {clientSecret}
resource : https://{tenant}.sharepoint.com
例如:
https://login.microsoftonline.com/cae788bd-7a55-4fb5-9d1f-3aa5365e14a/oauth2/token
grant_type : client_credentials
client_id : 1dd0a211-06f1-4f6a-a232-b3a8dcab829b
client_secret : ZWtkWm9M5Ucx5j29UoXPy7GKG+Hu0eNdVFYO+lH761w=
resource : https://{tenant}.sharepoint.com
从上面的api请求中,我得到一个访问令牌,当我尝试创建文件夹或从上面的访问令牌访问任何其他api时,它是 显示错误为"不支持的应用程序仅令牌"。我试图调用此Web服务来获取此错误:
PUT https://{tenant}.sharepoint.com/_api/v1.0/Files/{parent-id}/children/{folder-name}
Authorization : BearerBearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik1uQ19WWmNBVGZNNXBPWWlKSE
Content-Type : application/json
Accept : application/json
但之前我们在Office365中使用了相同的Daemon或Server Application到Web API身份验证方法来获取访问令牌,并且它运行正常。
我们已使用accesstoken访问office 365 API,但现在它显示错误为"不支持的应用仅限令牌"。
答案 0 :(得分:1)
的Manoj,
我的应用程序仅在Mail API的WPF应用程序中工作,您是否设置了证书? 根据你提到的博客
由于这些应用程序享有广泛的访问权限,因此应用程序还需要成功获取访问令牌。应用程序必须使用带有公钥/私钥对的X.509证书,而不是使用客户端ID和客户端密钥。
查看此链接如何设置: Performing app-only operations on SharePoint Online through Azure AD