没有用户交互的Office 365 REST API

时间:2016-12-15 12:59:33

标签: php rest office365

我需要一个PHP应用程序来定期从Outlook365帐户中检索邮件。

我在this example之后取得了成功,但这需要用户在代码完成其工作之前登录。在代码可以检索邮件之前,它将重定向到登录屏幕。

问题是PHP应用程序应该在没有来自计划任务的用户交互的情况下运行。所以没有人登录。

然后this example使用租户ID,这种方式有效。

典型的回答如下:

{
  "token_type": "Bearer",
  "expires_in": "3599",
  "ext_expires_in": "0",
  "expires_on": "1481807261",
  "not_before": "1481803361",
  "resource": "https://outlook.office.com",
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dC...."
}

它获取了访问令牌等,但是当使用该令牌进行API调用时,我得到了401状态代码。

第一次考试(使用手动登录)给出了这个回复:

{
  "token_type": "Bearer",
  "scope": "https://outlook.office.com/mail.read ..."
  "expires_in": "3599",
  "ext_expires_in": "0",
  "expires_on": "1481807261",
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI...."
  "refresh_token": "OAQABAAAAAADRNYRQ3dhRSrm-4K-adpCJeN_lDCf...."
  "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI...."
}

并使用该访问令牌进行API调用。

注意差异。基于租户的授权不返回refresh_token和id_token,但我不知道这是否与问题有关。

在第一个示例中请求令牌时是否缺少某些参数,还是app settings中某些设置的问题?

0 个答案:

没有答案