Question

I am trying to post an update i.e. a status message to IBM Connections using the extlib.

I have used the extlib with connectionsLTPA endpoint which works really well for getting the communities list. However I wish to add functionality to update the users status.

So far I have tried using

<xp:this.data>
    <xe:connectionsData var="connectionsData1"
        endpoint="connections" serviceUrl="/profiles/atom/mv/theboard/entry/status.do?email=#{userBean.email}">
    </xe:connectionsData>
</xp:this.data>

and then in the event handler

 var sb = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" +

        "<author><name>#{userBean.displayName}</name></author>" +
        "<entry xmlns=\"http://www.w3.org/2005/Atom\">" +
      "<content type=\"html\">" +input + "</content>" +
       "<category scheme=\"http://www.ibm.com/xmlns/prod/sn/type\" term=\"status\" />"+ 
     "</entry>\r\n";
var output = #{connectionsData1}.post(null, sb, "xml");

however this throws an error trying to call post on the binded data point.

Anybody able to point me in the right direction?

Thanks

Was it helpful?

Solution

I have found that implementing the sbt by doing the follwing:

<xp:button id="button2">
        <xp:this.value>Update my status</xp:this.value>
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="partial">
            <xp:this.action><![CDATA[#{javascript:try {
    var svc = new sbt.ConnectionsService("/profiles/atom/mv/theboard/entry/status.do?email=" +userBean.email);
    var sb = new java.lang.StringBuilder();
        sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
        sb.append("<entry xmlns=\"http://www.w3.org/2005/Atom\">");
        sb.append("<category scheme=\"http://www.ibm.com/xmlns/prod/sn/type\" term=\"entry\"/>");
        sb.append("<category scheme=\"http://www.ibm.com/xmlns/prod/sn/message-type\" term=\"status\"></category>");
        sb.append("<content type=\"text\">");
        sb.append(getComponent("inputText1").getValue());
        sb.append("</content>");
        sb.append("</entry>");
    var msg = svc.put(null, sb.toString(),"xml");
    var msg = "updated users profile status";

@WarningMessage(msg)
} catch(e) {}

}]]></xp:this.action>
        </xp:eventHandler>
    </xp:button>

The reason it wasn't working correctly is that the atom feed needed to be declared as an entry. This article in the connections doc for 2.5 http://publib.boulder.ibm.com/infocenter/ltscnnct/v2r0/index.jsp?topic=/com.ibm.connections.25.help/r_api_prof_update_photo.html explains the required parts of the xml atom document.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top