You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Microsoft Graph API生成Teams会议URL的技术问题求助

PHP脚本生成Teams会议URL问题

需求

实现一段PHP脚本,调用页面时返回包含每次生成的Teams会议URL的JSON文件。

初始错误

Fatal error: Uncaught Microsoft\Graph\Generated\Models\ODataErrors\ODataError in C:\xampp\htdocs\teamsapi\vendor\microsoft\microsoft-graph\src\Generated\Models\ODataErrors\ODataError.php:36 Stack trace: #0 C:\xampp\htdocs\teamsapi\vendor\microsoft\kiota-serialization-json\src\JsonParseNode.php(108): Microsoft\Graph\Generated\Models\ODataErrors\ODataError::createFromDiscriminatorValue(Object(Microsoft\Kiota\Serialization\Json\JsonParseNode)) #1 C:\xampp\htdocs\teamsapi\vendor\microsoft\kiota-http-guzzle\src\GuzzleRequestAdapter.php(666): Microsoft\Kiota\Serialization\Json\JsonParseNode->getObjectValue(Array) #2 C:\xampp\htdocs\teamsapi\vendor\microsoft\kiota-http-guzzle\src\GuzzleRequestAdapter.php(160): Microsoft\Kiota\Http\GuzzleRequestAdapter->throwFailedResponse(Object(GuzzleHttp\Psr7\Response), Array, Object(OpenTelemetry\API\Trace\NonRecordingSpan)) #3 C:\xampp\htdocs\teamsapi\vendor\php-http\promise\src\FulfilledPromise.php(39): Microsoft\Kiota\Http\GuzzleRequestAdapter->Microsoft\Kiota\Http{closure}(Object(GuzzleH in C:\xampp\htdocs\teamsapi\vendor\microsoft\microsoft-graph\src\Generated\Models\ODataErrors\ODataError.php on line 36

已完成的Azure配置操作

  • 使用管理员账号创建企业应用(也测试过App Registrations,均无效)
  • 添加以下权限并授予Admin Consent:Calendars.ReadWrite、Mail.ReadWrite、OnlineMeetings.ReadWrite.All、User.Read、User.ReadWrite.All、VirtualEvent.Read.All
  • 添加单页应用重定向URL:http://localhost/teamspai/index.php
  • 测试Multitenant和Singletenant模式,均无效
  • 通过PowerShell执行New-CsApplicationAccessPolicy和Grant-CsApplicationAccessPolicy .. -Global配置访问权限

使用的PHP代码

<?php 
include_once('vendor/autoload.php');
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Kiota\Abstractions\ApiException;
use Microsoft\Kiota\Authentication\Oauth\ClientCredentialContext;
use Microsoft\Graph\Generated\Models\OnlineMeeting;


$scopes = ['https://graph.microsoft.com/.default'];
$tenantId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$clientId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$clientSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
 
$tokenRequestContext = new ClientCredentialContext(
    $tenantId,
    $clientId,
    $clientSecret
);

$graphServiceClient = new GraphServiceClient($tokenRequestContext);
$requestBody = new OnlineMeeting(); 
$result = $graphServiceClient->me()->onlineMeetings()->post($requestBody)->wait();
echo json_encode($result);
?>

已尝试的解决方法

  • 添加权限
  • 切换单/多租户模式
  • 配置Access Policy
  • 降级MSGraph版本
  • 创建新应用

当前状态(编辑补充)

将调用改为byUserId后错误消失,但返回空JSON:{}

内容的提问来源于stack exchange,提问作者Santos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 16:12:53