我使用rails构建一个应用程序,该应用程序使用Microsoft Graph客户端来获取用户日历中的事件。我已经阅读了关于图api的大量教程和文档,我遇到的问题是为实际的客户端本身找到资源。所有文档都显示了使用http请求的示例,例如:
GET https://outlook.office.com/api/v2.0/me/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
但我无法找到有关如何向图形客户端本身添加startDateTime和endDateTime等参数的资源。例如,这是MS教程中使用图形客户端获取事件的示例函数:
def index
token = get_access_token
email = session[:user_email]
if token
# If a token is present in the session, get events from the calendar
callback = Proc.new do |r|
r.headers['Authorization'] = "Bearer #{token}"
r.headers['X-AnchorMailbox'] = email
end
graph = MicrosoftGraph.new(base_url: 'https://graph.microsoft.com/v1.0',
cached_metadata_file: File.join(MicrosoftGraph::CACHED_METADATA_DIRECTORY, 'metadata_v1.0.xml'),
&callback)
@events = graph.me.events.order_by('start/dateTime asc')
else
# If no token, redirect to the root url so user
# can sign in.
redirect_to root_url
end
end
他们从@events = graph.me.events.order_by('start/dateTime asc')
获取活动
这几乎是我需要的,但我需要特定日期范围之间的事件。
我相信我真正想要的是日历视图(https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/calendar_list_calendarview),并指定日期范围,但我找不到任何解释如何使用客户端指定日期范围的资源。
我尝试从graph.me.calendar_view
获取日历视图,该视图工作正常,但返回大量数据,我想指定日期范围以返回事件。
有谁能告诉我如何指定客户的日期范围?
谢谢!
答案 0 :(得分:2)
关于这个问题确实没有太多文件,但这应该有所帮助:
@events = graph.me.events.filter("start/dateTime ge '#{start}' and end/dateTime le '#{end}'")