I followed the tutorial below to get mail using outlook api. This works, but requires the user to login every time to give access. Is there a way to give permanent / offline access? Similar to how gmail api works (access to when your not at your keyboard)
Absolutely! In order to get offline access, you need to add the offline_access
scope to your requested scopes. This will result in a refresh token being sent along with your access token. You can use the refresh token to get a new access token when the current one expires. See the "Refresh the Access Token" section of https://azure.microsoft.com/en-us/documentation/articles/active-directory-v2-protocols/#oauth2-authorization-code-flow.
Here is the actual string you would need to append to the scope:
offline_access%20openid%20email%20profile
A basic example of a scope:
"openid+https%3A%2F%2Foutlook.office.com%2Fmail.read+https%3A%2F%2Foutlook.office.com%2Fcalendars.read+offline_access%20openid%20email%20profile"
来源:https://stackoverflow.com/questions/32483796/outlook-api-oauth2-offline-acces-permanent-access-using-php