使用Microsoft Graph Beta API调用时遇方法声明兼容错误求助
解决Microsoft Graph Beta API PHP SDK的方法返回类型兼容错误
问题背景
我尝试使用Microsoft Graph Beta API获取数据,composer依赖配置如下:
"require": { "microsoft/microsoft-graph-beta": "^2.0.0-RC13", "microsoft/microsoft-graph-core": "@RC" }
两段测试代码(分别用于获取用户信息、团队排班班次)均触发相同致命错误:
Fatal error: Declaration of Microsoft\Graph\Beta\Generated\Models\ODataErrors\ODataError::getAdditionalData(): ?array must be compatible with Microsoft\Kiota\Abstractions\Serialization\AdditionalDataHolder::getAdditionalData(): array in D:...\vendor\microsoft\microsoft-graph-beta\src\Generated\Models\ODataErrors\ODataError.php on line 43
解决方案
1. 修正依赖版本匹配
该错误源于microsoft-graph-beta RC13版本与microsoft-graph-core的@RC版本依赖的Kiota抽象层版本不一致,导致方法返回类型定义冲突(可选数组?array与必选数组array不兼容)。
修改composer.json的依赖配置,锁定到匹配的RC版本:
"require": { "microsoft/microsoft-graph-beta": "2.0.0-RC13", "microsoft/microsoft-graph-core": "2.0.0-RC11" }
2. 更新依赖并重建自动加载
执行以下命令完成依赖更新:
composer update
3. 补全代码必要的命名空间
确保测试代码引入了所有必要的命名空间,例如代码1需补充:
use Microsoft\Graph\Beta\GraphServiceClient; use Microsoft\Graph\Beta\GraphRequestAdapter; use Microsoft\Kiota\Authentication\Oauth\ClientCredentialContext; use Microsoft\Kiota\Authentication\PhpLeagueAuthenticationProvider; use Microsoft\Kiota\Abstractions\ApiException;
内容的提问来源于stack exchange,提问作者Dream811
相关产品推荐
相关产品推荐

