emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] Excorporate: Exchange integration package


From: Thomas Fitzsimmons
Subject: [elpa] Excorporate: Exchange integration package
Date: Sun, 08 Feb 2015 16:21:41 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

Hi,

I wrote a library called Excorporate that allows Emacs to talk to an
Exchange server over the Exchange Web Services API.  I would like to
release it as a GNU ELPA package.  In the meantime, you can try it out
like this:

Download:
http://melpa.org/packages/calfw-20150206.1648.tar
http://www.fitzsim.org/emacs/excorporate-0.5.4.tar

M-x package-install-file calfw-20150206.1648.tar
M-x package-initialize
M-x package-install-file excorporate-0.5.4.tar

M-x excorporate
Follow prompts and enter Exchange credentials twice.

M-x calendar
Press 'e' to show today's meetings.

Alexandru Harsanyi provided lots of guidance and help extending
soap-client.el to support the full Exchange Web Services API.

Features
========

The core library has the following features:

- Fully asynchronous -- it never blocks redisplay except for one rare
  error recovery condition

- General API for making Exchange Web Services calls -- the entire EWS
  API is supported (i.e., the entire WSDL file is properly parsed by
  soap-client)

- Pure Emacs Lisp, using the built-in url and soap-client packages

- Support for all Emacs versions that support packages -- tested on
  versions 24.1 through 24.4 on GNU/Linux and MS-Windows

- Autodiscovery of configuration starting from only an email address

- NTLMv2 authentication

Proof of Concept
================

I've included a proof of concept that fetches today's meetings upon
request, and displays them using a calfw component.  I use this daily
and find it very convenient.  There's no support for week, two week or
month views since there's no caching.  Only read-only operations are
supported (e.g., you can't create meetings or respond to meeting
requests yet).

Mainly this release is to confirm all the tricky plumbing works for
people: autodiscovery, authentication, WSDL parsing.  Possible future
extensions include Gnus, Diary, EUDC and Org integration.

API
===

The API is simple for now.  The hard part of using it is figuring out
which Exchange Web Services operations to invoke, and their arguments.

(exco-api-version)
(exco-connect IDENTIFIER)
(exco-operate IDENTIFIER NAME ARGUMENTS CALLBACK)
(exco-disconnect IDENTIFIER)
(exco-extract-value PATH RESULT)
(exco-extend-timezone DATE-TIME-STRING)
(exco-format-date-time TIME-INTERNAL)

GNU ELPA Release Prerequisites
==============================

If the package is OK to go into GNU ELPA I'll need someone to confirm
copyright assignment for the following bundled dependencies:

url-http-ntlm.el (core library dependency):
Tom Schutzer-Weissmann <address@hidden>

Tom may not have paperwork on file; need confirmation.  I can rewrite
this if necessary.  I want to generalize it a little anyway.

fsm.el (core library dependency):
Magnus Henoch <address@hidden>

Seems to have paperwork done, need confirmation.  fsm.el should probably
be its own ELPA package or bundled in Emacs.

emacs-calfw (proof-of-concept dependency, could be split out):
SAKURAI Masashi <m.sakurai at kiwanami.net>

Seems to have paperwork done, need confirmation.  calfw should probably
be its own ELPA package.

Bugs
====

- I bundled a patch to url-http-parse-headers to clear Authorization
  elements from url-http-extra-headers prior to executing a redirect,
  otherwise NTLM authentication doesn't work across redirects.  The
  implemented behaviour is backward compatible and should probably be
  committed to master (after review by a URL expert).

- On master only (24.1 through 24.4 are not affected) setting url-debug
  to 't causes url-retrieve to hang when contacting the server.  I'm not
  sure why yet.

Thomas



reply via email to

[Prev in Thread] Current Thread [Next in Thread]