gpt4 book ai didi

php - 在 PHP 中使用 Outlook Api 创建新事件(使用 POST 方法)

转载 作者:行者123 更新时间:2023-12-05 07:30:30 24 4
gpt4 key购买 nike

我正在使用 Outlook API 中的 POST 方法在 php 中创建新事件。我点击了这个链接 https://learn.microsoft.com/en-us/outlook/rest/php-tutorial实现 GET 事件方法。我正在使用的授权码如下

$oauthClient = new \League\OAuth2\Client\Provider\GenericProvider([
'clientId' => 'APP ID',
'clientSecret' => 'APP Password',
'redirectUri' => 'http://localhost/CodeIgniter-3.1.9/authorize',
'urlAuthorize' => 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize',
'urlAccessToken' => 'https://login.microsoftonline.com/common/oauth2/v2.0/token',
'urlResourceOwnerDetails' => '',
'scopes' => ' Calendars.ReadWrite Calendars.ReadWrite.Shared Calendars.Read.Shared'
]);

获取 token 这是代码

  $accessToken = $oauthClient->getAccessToken('authorization_code', ['code' => $_GET['code']]);

现在创建从 PHP 应用程序到 outlook 日历的事件。获取 token 后,我编写了以下代码以使用 POST 方法创建新事件。

$url = "https://graph.microsoft.com/beta/me/events";
$data_json = '{
"subject": "Lets go for lunch",
"body": {
"contentType": "HTML",
"content": "Does late morning work for you?"
},
"start": {
"dateTime": "2017-04-15T12:00:00",
"timeZone": "Pacific Standard Time"
},
"end": {
"dateTime": "2017-04-15T14:00:00",
"timeZone": "Pacific Standard Time"
},
"location":{
"displayName":"Harrys Bar"
},
"attendees": [
{
"emailAddress": {
"address":"ehteshamanwar_86@hotmail.com",
"name": "Ehtesham Anwar"
},
"type": "required"
}
]
}' ;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json",
"Authorization: Bearer " . $accessToken->getToken(),
"Content-length: ".strlen($data_json))
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
echo "<pre>";
print_r($result);

这个调用的响应是

 {  "error": {
"code": "ErrorAccessDenied",
"message": "Access is denied. Check credentials and try again.",
"innerError": {
"request-id": "7accd0e6-428c-4d71-....",
"date": "2018-09-06T11:18:29"
} }

Microsoft app in dev center

请帮助我如何解决这个问题

最佳答案

"message": "Access is denied. Check credentials and try again.",

正如消息所说,存在用户身份验证问题。

使用控制台或者其他方式输出Token。并在开发中心和项目设置中检查您的 redirectUri。

考虑效率,建议大家关注Microsoft Graph SDK for PHP进行我们所有的事件 API 调用。

关于php - 在 PHP 中使用 Outlook Api 创建新事件(使用 POST 方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52223421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com