Ruby on Rails Microsoft Graph Client为日历指定参数

时间:2017-06-05 15:53:49

标签: ruby-on-rails ruby api calendar microsoft-graph

我使用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获取日历视图,该视图工作正常,但返回大量数据,我想指定日期范围以返回事件。

有谁能告诉我如何指定客户的日期范围?

谢谢!

1 个答案:

答案 0 :(得分:2)

关于这个问题确实没有太多文件,但这应该有所帮助:

@events = graph.me.events.filter("start/dateTime ge '#{start}' and end/dateTime le '#{end}'")