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

开发阶段如何在Microsoft Graph API的cURL中忽略SSL证书错误?

临时绕过Microsoft Graph API PHP客户端的SSL证书验证(仅开发环境)

针对你遇到的cURL SSL证书错误,可通过配置Microsoft Graph PHP SDK的自定义HTTP客户端来临时关闭SSL验证,仅用于开发测试场景,具体修改如下:

修改步骤

  • 创建自定义HTTP客户端,设置cURL禁用SSL证书验证选项
  • 将自定义客户端传入GraphServiceClient的构造参数

修改后的完整代码

use Microsoft\Graph\GraphServiceClient;
use Microsoft\Kiota\Authentication\Oauth\ClientCredentialContext;
use GuzzleHttp\Client;
use Microsoft\Kiota\Abstractions\ApiException;

function SendGraphEmail() {
    $tokenRequestContext = new ClientCredentialContext(
        'tenantId',
        'clientId',
        'clientSecret'
    );

    // 配置自定义HTTP客户端,关闭SSL验证
    $httpClient = new Client([
        'verify' => false, // 禁用Guzzle层面的SSL验证
        'curl' => [
            CURLOPT_SSL_VERIFYPEER => false,
            CURLOPT_SSL_VERIFYHOST => false,
        ]
    ]);

    $scopes = [
        'User.Read',
        'Mail.Send',
        'Mail.ReadWrite'
    ];

    // 将自定义客户端传入GraphServiceClient
    $graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes, $httpClient);

    try {
        $user = $graphServiceClient->users()->byUserId('[userPrincipalName]')->get()->wait();
        echo "Hello, I am {$user->getGivenName()}";
    
    } catch (ApiException $ex) {
        error_log($ex->getMessage());
        echo 'error: ' . $ex->getMessage();
    }
}

关键说明

  • 'verify' => false是Guzzle客户端的全局SSL验证开关,配合cURL原生选项确保完全关闭验证
  • 仅允许在开发测试场景使用该配置,生产环境必须删除此配置并确保SSL证书验证正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 10:12:06