搜索参数不适用于 Outlook rest api
The Search parameter does not work with Outlook restapi
我使用了“https://github.com/jasonjoh/php-tutorial”中描述的基本 example/tutorial,并尝试在 getMessages() 函数中添加“$search”参数
$getMessagesParameters = array (
// Message Search Conditions
"$search" => 'subject:"pizza"',
// Only return Subject, ReceivedDateTime, and From fields
"$select" => "Subject,Body",
// Return at most 10 results
"$top" => "10"
);
$getMessagesUrl = self::$outlookApiUrl."/Me/Messages?".http_build_query($getMessagesParameters);
$response = $this->makeApiCall($access_token, $user_email, "GET", $getMessagesUrl);
请求returns错误400
想知道什么是正确的语法
我参考了以下链接
https://msdn.microsoft.com/en-us/library/cc513841%28v=office.12%29.aspx
如果有人有更好的想法通过邮件搜索,请建议...
您不能在搜索结果中使用 orderby。
见 https://msdn.microsoft.com/en-us/office/office365/api/complex-types-for-mail-contacts-calendar#UseODataqueryparametersSearchrequests
$search=subject:"pizza" 应该是 $search=subject:pizza。但这也不起作用。
我使用 $search=pizza 并且有效(没有 orderby)
我已经找到确切的问题...
问题不在于搜索参数规范/服务器 REST 端点...
但问题在于我们如何将查询参数发送到服务器...
我们不应该url对数据进行编码。
但是我们需要将结果中的空格替换为+
url
这是我想出的解决方案...
$search_AQS = '"Subject:(pizza+OR+hamburger+OR+tacos)+AND+subject:(NOT+beef+NOT+pork)"';
$getMessagesParameters = array (
"$search" => $search_AQS,
"$select" => "Subject,Body",
"$top" => "10"
);
$tmp_uripiece = http_build_query($getMessagesParameters);
$tmp_uripiece = urldecode($tmp_uripiece);
$getMessagesUrl = self::$outlookApiUrl.'/Me/Messages?'.$tmp_uripiece;
$response = $this->makeApiCall($access_token, $user_email, "GET", $getMessagesUrl);
耶! Microsoft 还支持其端点中的搜索功能...但他们应该记录更多示例...
感谢大家的支持...
我使用了“https://github.com/jasonjoh/php-tutorial”中描述的基本 example/tutorial,并尝试在 getMessages() 函数中添加“$search”参数
$getMessagesParameters = array (
// Message Search Conditions
"$search" => 'subject:"pizza"',
// Only return Subject, ReceivedDateTime, and From fields
"$select" => "Subject,Body",
// Return at most 10 results
"$top" => "10"
);
$getMessagesUrl = self::$outlookApiUrl."/Me/Messages?".http_build_query($getMessagesParameters);
$response = $this->makeApiCall($access_token, $user_email, "GET", $getMessagesUrl);
请求returns错误400
想知道什么是正确的语法
我参考了以下链接
https://msdn.microsoft.com/en-us/library/cc513841%28v=office.12%29.aspx
如果有人有更好的想法通过邮件搜索,请建议...
您不能在搜索结果中使用 orderby。 见 https://msdn.microsoft.com/en-us/office/office365/api/complex-types-for-mail-contacts-calendar#UseODataqueryparametersSearchrequests $search=subject:"pizza" 应该是 $search=subject:pizza。但这也不起作用。 我使用 $search=pizza 并且有效(没有 orderby)
我已经找到确切的问题...
问题不在于搜索参数规范/服务器 REST 端点...
但问题在于我们如何将查询参数发送到服务器...
我们不应该url对数据进行编码。
但是我们需要将结果中的空格替换为+
url
这是我想出的解决方案...
$search_AQS = '"Subject:(pizza+OR+hamburger+OR+tacos)+AND+subject:(NOT+beef+NOT+pork)"';
$getMessagesParameters = array (
"$search" => $search_AQS,
"$select" => "Subject,Body",
"$top" => "10"
);
$tmp_uripiece = http_build_query($getMessagesParameters);
$tmp_uripiece = urldecode($tmp_uripiece);
$getMessagesUrl = self::$outlookApiUrl.'/Me/Messages?'.$tmp_uripiece;
$response = $this->makeApiCall($access_token, $user_email, "GET", $getMessagesUrl);
耶! Microsoft 还支持其端点中的搜索功能...但他们应该记录更多示例...
感谢大家的支持...