开发阶段如何在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
相关产品推荐
相关产品推荐

