我使用的是office365应用程序,引用自https://msdn.microsoft.com/en-us/office/office365/api/mail-rest-operations#Createandsendmessages和https://dev.outlook.com/RestGettingStarted/Tutorial/php创建一个函数:
function reply_to(){
$comment =array("Comment"=> $_POST['comment']);
$url="https://outlook.office365.com/api/v1.0/me/messages/'".$_POST['messeg_id']."'/reply";
$data=OutlookService::makeApiCall($_SESSION['access_token'],'POST',$url,$comment);
print_r($data);
}
并且总是得到相同的错误
数组([errorNumber]=>400[error]=>请求返回HTTP错误400(。
我不知道我做错了什么,我已经检查了很多次了。
几个问题:
- 删除URL中邮件ID周围的单引号
'
- JSON在将
$comment
数组传递给makeApiCall
之前对其进行编码,如下所示:$comment = json_encode(array("Comment"=> $_POST['comment']));
如果您不进行JSON编码,那么cURL会以表单编码的形式发送数据,而不是以JSON实体的形式发送。服务器以400拒绝它,因为它是无效的JSON。