Microsoft Office 365 Task 或 Todo php api 授权

菲利克斯

我想实现一些工作流,他们应该向 Microsoft 待办事项应用程序添加一些任务。

他们有一个休息 api。我尝试访问 oauth。但是有错误的返回网址。而且我不想拥有一个浏览器应用程序,它应该只是一个在后台运行的 php 脚本。

我试过这个:

$url = oAuthService::getLoginUrl("http://localhost/microsoftToDoTest/auth.php");

header("location:".$url);


class oAuthService {
    private static $clientId = "";
    private static $clientSecret = "";
    private static $authority = "https://login.microsoftonline.com";
    private static $authorizeUrl = '/common/oauth2/authorize?client_id=%1$s&redirect_uri=%2$s&response_type=code';
    private static $tokenUrl = "/common/oauth2/token";

    public static function getLoginUrl($redirectUri) {
        $loginUrl = self::$authority.sprintf(self::$authorizeUrl, self::$clientId, urlencode($redirectUri));
        error_log("Generated login URL: ".$loginUrl);
        return $loginUrl;
    }
}

在微软服务上使用 php 授权的正确方法是什么?

提前致谢

乔里_达米安

查看您的代码和文档,我认为您需要请求令牌才能创建有效的会话。然后通过带有会话 ID 的 cookie 中的 url 提供该令牌。

Route::get('/authorize', 'AuthController@gettoken');

现在微软在他们的文档中提供了这个:

public function signin() 
{
  if (session_status() == PHP_SESSION_NONE) {
    session_start();
  }

  // Initialize the OAuth client
  $oauthClient = new \League\OAuth2\Client\Provider\GenericProvider([
    'clientId'                => env('OAUTH_APP_ID'),
    'clientSecret'            => env('OAUTH_APP_PASSWORD'),
    'redirectUri'             => env('OAUTH_REDIRECT_URI'),
    'urlAuthorize'            => env('OAUTH_AUTHORITY').env('OAUTH_AUTHORIZE_ENDPOINT'),
    'urlAccessToken'          => env('OAUTH_AUTHORITY').env('OAUTH_TOKEN_ENDPOINT'),
    'urlResourceOwnerDetails' => '',
    'scopes'                  => env('OAUTH_SCOPES')
  ]);

  // Generate the auth URL
  $authorizationUrl = $oauthClient->getAuthorizationUrl();

  // Save client state so we can validate in response
  $_SESSION['oauth_state'] = $oauthClient->getState();

  // Redirect to authorization endpoint
  header('Location: '.$authorizationUrl);
  exit();
}

https://docs.microsoft.com/en-us/outlook/rest/php-tutorial微软可能在 office365 周围使用相同的方式。希望这将帮助您实现正确的代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

PHP中的Office 365 API

授权客户端浏览Office365 Graph API

使用 PHP API 创建 Office 365 用户

如何使用 Microsoft Graph Api 获取 Office 365 的邮件大小?

JAVA中的Microsoft Office 365邮件REST API

JAVA中的Microsoft Office 365邮件REST API

Office365:访问管理活动api时出现未经授权的响应

如何使用Office365 API v2搜索从授权帐户发送的电子邮件?

Office 365的Microsoft Office自动化

由于逻辑应用程序中的交叉API连接,导致Office365 API连接身份验证/授权失败

使用具有相同令牌的Microsoft Office365(Outlook)API和Graph API

Office 365共享邮箱API

Office 365 REST API入门

Office 365 Oauth Web API

Microsoft Graph API-Office 365访问SharePoint嵌套文件夹项目

使用Microsoft Graph API显示Office 365用户的即将生日的列表

在Office 365业务上使用客户端凭据和Microsoft Graph OneNote API

如何使用Microsoft图形API从Office 365还原已删除的邮件

通过Office 365安装Microsoft Excel 2016

Office365 Microsoft图全文搜索

EWS与Office365的连接失败-401未经授权

回复:Microsoft Office更新,许可:永久许可与Office 365

Office365 REST API的API限制

如果我的 Azure AD 中有多个 Office 365 订阅,则 Microsoft Graph API 将为这些订阅返回结果

如何使用 Microsoft graph api 检索 Office 365 用户邮箱中的所有未分类电子邮件计数

Office 365 Sharepoint API $ skip / $ skiptoken功能

Office365 API 获取 ReferenceAttachment 的内容

通过EWS API连接到Office 365

Office 365 API-嵌入图像