【发布时间】:2019-11-10 19:08:57
【问题描述】:
我想配置我的 Symfony4 应用程序以使用 msgraph-sdk-php 库来阅读和发送电子邮件。
我的第一次体验是这段代码:
$guzzle = new \GuzzleHttp\Client();
$url = 'https://login.microsoftonline.com/' . $tenantId . '/oauth2/token?api-version=1.0';
$token = json_decode($guzzle->post($url, [
'form_params' => [
'client_id' => $clientId,
'client_secret' => $clientSecret,
'resource' => 'https://graph.microsoft.com/',
'grant_type' => 'client_credentials',
],
'verify' => false
])->getBody()->getContents());
$accessToken = $token->access_token;
$graph = new Graph();
$graph->setAccessToken($accessToken);
try {
$user = $graph->createRequest("GET", "/me")
->setReturnType(User::class)
->execute();
} catch (GraphException $e) {
$user=(object) ['getGivenName'=>$e->getMessage()];
}
return "Hello, I am $user->getGivenName() ";
但是 Symfony 向我显示了一个异常页面,其中包含以下消息:
cURL 错误 60:SSL 证书问题:无法获取本地颁发者证书
我应该怎么做才能克服这个问题?
【问题讨论】:
-
@Dharman,我想你可能是对的,错误确实是由于缺少证书,并且通过编辑
php.ini添加curl.cainfo和openssl.cafile密钥来解决,虽然我没有使用 Apache、Xampp 或 Wamp,而是使用 Symfony 自己的服务器。但是由于@RenéHöhle 花时间回答了我的问题,我认为保留帖子和他接受的答案是公平的。我觉得没有什么坏处,因为这些帖子现在已通过您的通知链接,并且始终采用相同的解决方案。 -
为什么不两者兼而有之?接受答案和副本。但是,我知道副本有点在灰色区域中,我让您自己判断。
-
好的,但是,我该怎么做呢?我编辑了我的问题以添加
guzzle标签,现在接受副本的按钮消失了……我不知道我可以同时接受这两个标签。我认为接受副本会删除我的帖子,所以它的答案......对不起。
标签: php symfony azure-active-directory microsoft-graph-api guzzle