IBM Verse Application Development

UPDATE

IBM finally released Verse extension points: business card and view/compose widget integration.  See What’s New October 2016.

Technical details can be found here.

ORIGINAL CONTENT

On March 31, IBM released its much anticipated solution to social and email, IBM Verse. And part of my role in IBM is demonstrating how business partners can use technology like IBM Verse to build new and engaging products. The IBM team is still in the process of publishing development material. For now, take a look at the Tech Talk replay “A Deeper Look into IBM Verse“. I’ve also created my own presentation on Verse application development. We are currently giving this presentation as part of a one day workshop in the US. If you’d like to discuss further, feel free to contact me.

Verse Application Development

The presentation is framed as what we have today and what is coming. I’ll talk about what we have today below. But alot is coming, and much of the presentation also discusses how we foster application development in our cloud so that when those Verse APIs are released, you can begin using them quickly.

So what’s available today?

Mailto: “API”

I have quotes around API because application developers might argue that this is not API – though it is one way to immediately integrate Verse.  Mailto is a link in a web page. You’ve no doubt seen the Contact Us link that launches your Notes or Outlook desktop client. Those same web links will work with Verse. Web developers can create links that begin a draft email in Verse and optionally add a recipient, subject, and body. For details, see this post.

Verse Search API

OK, now this one is API. It’s also the same way the Verse web client works. When you click a person, you’ll only see emails from that person. This is called a facet and allows you to filter out all the stuff you don’t care about. So you can concentrate on reviewing emails using:

  • People
  • With Attachments
  • With Links
  • Needing Action
  • Waiting For
  • Date Ranges

Your custom application can filter and receive responses in much the same way. To figure out how (since there’s no public API yet), look at the network tool in Chrome, Firefox, etc. And then just start clicking on the facets to see how the URLs are constructed.

IBM Verse Search API

 

In this screenshot, I’ve just clicked on the Needs Action facet. And I’m given an email from Amy that I’ve flagged as needing my follow up. The URL requests denoted by the lower red arrows show the API calls being made. Below is the actual GET request.

https://mail.notes.na.collabserv.com/api/search/documents?wt=json&df=body&q.op=AND&TZ=America%2FNew_York&dbfile=livemail&q=((((replydate%3A*%20OR%20followupstatus%3A%3F)%20AND%20!folderunid%3A%22FFFFFFFF000000000000000000000001%22%20AND%20!folderunid%3A%22FFFFFFFF000000000000000000000002%22))%20(softdeletion%3A0))%20OR%20unid%3A(CED442931844E0E700257E1300089C78)&start=0&rows=31&withunread=1&sort=followupdate%20asc%2Cmaildate%20desc&group=true&group.field=tua0&group.sort=maildate%20desc&group.limit=1&xhr=1

Go ahead and paste the URL in your address bar, you should get back data.  The API endpoint is https://mail.notes.na.collabserv.com/api/search/documents.  And it carries a set of parameters that define the search:

  • wt:json
  • df:body
  • q.op:AND
  • TZ:America/New_York
  • dbfile:livemail
  • q:((((replydate:* OR followupstatus:?) AND !folderunid:”FFFFFFFF000000000000000000000001″ AND !folderunid:”FFFFFFFF000000000000000000000002″)) (softdeletion:0)) OR unid:(CED442931844E0E700257E1300089C78)
  • start:0
  • rows:31
  • withunread:1
  • sort:followupdate asc,maildate desc
  • group:true
  • group.field:tua0
  • group.sort:maildate desc
  • group.limit:1
  • xhr:1

The “q” parameter is the important one. As you click on facets, note how this parameter changes.

And what you’ll get back is a JSON response that you can use in your custom application.  I’ll save explanation of the parameters, request, and response format for the real IBM documentation. But armed with this, you can start investigating and probably get a good idea of how to search and retrieve information from Verse.

What Else?

So what else can you do? I show some of what’s coming in the presentation. But think about the information stored in Verse: your todo list, who’s important to you, email and social content. Because it provides so many possibilities to improve not only email but other applications, this is why Verse really is a #NewWayToWork.

 

5 thoughts on “IBM Verse Application Development”

    1. Good point. What I expect is that you’ll run into a CORS restrictions. The IBM Connections Cloud will not accept cross origin requests … meaning that Javascript AJAX call from your web application will fail when attempting to access Connections Cloud. The solution to this is your web calls must pass to a server side application that makes the request. This is how the IBM Social Business Toolkit is configured; a Javascript layer calls back to a Java server side application. The Java connections will not experience the same security restrictions as the browser. For those familiar with WebSphere Portal, this is how the HTTP Proxy (formerly AJAX Proxy) works. Hope that helps.

      1. How can one authenticate to use the APIs? I tried it with Basic Auth (like Connections API access), but that always returns a 401. Is there any documentation available?

        1. Yeah so that’s a good, technical question. Since the team never made APIs public, BASIC auth is likely to simply not work. But if you go to https://mail.notes.na.collabserv.com/verse you’ll see a redirect occur to https://apps.na.collabserv.com/sps/idp/saml11/login?SP_PROVIDER_ID=https://mail.notes.na.collabserv.com&TARGET=https%3a%2f%2fmail.notes.na.collabserv.com%2fverse. When you log in to that URL, it triggers a SAML process and that’s how you actually get authenticated into Verse. You could use the tool here http://www-01.ibm.com/support/docview.wss?uid=swg21965749 to write a client that logs in the user programmatically, uses the SAML assertion, and caches the resulting headers. Usage of the SAML assertion is core to the tool. And for each subsequent “API” call, the headers you received will need to be re-sent. I’ve been meaning to re-create what the tool does using a tool like Postman but have yet to complete it.

Leave a Reply

Your email address will not be published.