32
How To Add Your Own OpenSocial Gadgets To IBM Connections Ryan Baxter, Software Engineer, IBM IBM SBT Webinar 09/11/13

How to add your own OpenSocial Gadgets to IBM Connections

Embed Size (px)

DESCRIPTION

OpenSocial Gadgets offer a range of integration options in IBM Connections; the Share Box, the Activity Stream, the Home Page, and Connections Mail can all be extended with OpenSocial Gadgets. During the webinar we will walk through various demonstrations of all the integration options and show you how to get started building your own OpenSocial Gadgets to integrate your app into IBM Connections. Speaker: Ryan Baxter, @ryanjbaxter IBM, Software Engineer – OpenSocial / Embedded Experiences IBM Social Business Toolkit webinars: https://www.ibmdw.net/social/events

Citation preview

Page 1: How to add your own OpenSocial Gadgets to IBM Connections

How To Add Your Own OpenSocial Gadgets To IBM Connections

Ryan Baxter, Software Engineer, IBM

IBM SBT Webinar 09/11/13

Page 2: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation2

Disclaimers

IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion.

Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision.

The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion.

Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user’s job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.

Page 3: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation3

OpenSocial Gadgets

● Use them to integrate into IBM Connections

● HTML, JavaScript, and CSS wrapped in XML● Use the same technologies and libraries you are already familiar with

in gadgets● Dojo, JQuery, Bootstrap, etc

● Make API requests using gadgets.io.makeRequest● Requests go through a proxy on the Connections server● Use makeRequest as oppsed to other XHR libraries● Support for APIs protected by OAuth 2.0

● Gadget features provide gadget APIs for you to use in your application

Page 4: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation4

OpenSocial Explorer

● Open source tool to help developers learn how to build gadgets● Download the source from GitHub, build, and launch

● Just need Maven and Java

Page 5: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation5

Where Can You Integrate? Embedded Experiences!

● Embedded Experiences● In the activity stream and in

Connections Mail● URL and Gadget embedded

experiences supported in both places

● Use Cases● Notifying users of important

information that has taken place in your application

● Allows them to interact with the notification without having to leave the application (Connections)

Page 6: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation6

Sending Embedded Experiences

● Your application needs to add the embedded experiences data model to either the email or activity entry to add an embedded experience

● Gadget EE{

“gadget” : “http://acme.com/gagdet.xml”,

“context” : {

“id” : 123

}

}

● URL EE{“url” : “http://domino.com/myxpage.xsp”}

Standard MIME Email

Activity Entry

EE Data Model

Page 7: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation7

Activity Stream Data Models With Embedded Experiences

Gadget Embedded Experience

URL Embedded Experience

Page 8: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation8

DEMO

Page 9: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation9

Where Can You Integrate? ShareBox!

● The ShareBox is new in Connections 4.0 and by default lets users update their status and upload files from anywhere in Connections

● It is extensible using OpenSocial gadgets allowing you to surface content from anywhere in Connections● The actions feature of

OpenSocial can be used to extend the ShareBox

Page 10: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation10

Building A ShareBox Gadget

● Require the OpenSocial Actions feature, add an action with the path container/sharebox

● Require ibm.connections.sharedialog● Provides API to interact with the ShareBox● Tell Connections the dialog is dirty● Close the dialog● Provide a success or error message

Page 11: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation11

DEMO

Page 12: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation12

Where can you integrate? The Homepage!

● OpenSocial gadgets can be used to integrate a stand-alone application into the homepage of Connections● Either the activity stream

homepage or the My Page (dashboard)

● Allows you to bring your application to the end user where they are working

Page 13: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation13

DEMO

Page 14: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation14

Placing Connections In Developer Mode

● By default, Connections will not let you render just any gadget● The opensocial-config.xml file is where you can configure the security

around gadgets in Connections

● What if I don't put Connections in developer mode?● You need to use a user that has been given the administrator J2EE

role in the Homepage app to add gadgets to Connections● The main benefit is with EE testing in Connections Mail and the

activity stream, you don't need to explicitly approve those gadgets● For gadgets rendered on the Homepage or in the ShareBox you will

need to use an Administrator UI

Page 15: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation15

Developer Mode For Gadgets

● security/[whitelistEnabled] – true by default, set to false to disable, make sure you set developer-hosts-whitelist/[allServers] to true as well

● developer/[enabled] – by default this is false, set it to true to enable the developer bootstrap page

● developer/[allowSSOFeature] – Allows the gadgets to render on the same domain as Connections giving them access to SSO cookies

● developer/[allowIntranetProxyAccess] – Allows the gadgets to access resources on your intranet (your Websphere SSO domain)

● developer-hosts-whitelist/[allServers] – Set this to true to let ALL gadgets render, not just the ones specified in the whitelist

Page 16: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation16

Developer Mode For URL Embedded Experiences

● url-access/[urlWhitelistEnabled] – Whitelist which controls URL embedded experiences, set this to false to disable this whitelist

Page 17: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation17

Developer Bootstrap Page

● You need to place Connections in developer mode in order to access the bootstrap page

● {ConnectionsHost}/connections/resources/web/com.ibm.lconn.gadget/test/bootstrap.html?render=test&oneui=3

Page 18: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation18

Adding Gadgets To Connections

Page 19: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation19

OpenSocial Gadget Specific Settings

● Select OpenSocial Gadget

● Security – Restricted/Trusted● Restricts the use of certain

gadget features

● UI Integration – Indicates if the gadget can integrate into the ShareBox or be used as an Embedded Experience

● Proxy – Which domains the gadgets can access

● Service Mappings – OAuth servces the gadget can use

Page 20: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation20

Security

● Restricted● Restricts the features the

gadget has access to● OAuth● Preferences● Opening Dialogs

● Trusted● Access to all the above

features just not SSO

● If you enable SSO the gadget will have access to all of your SSO cookies

Page 21: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation21

UI Integration

● Determines where the gadget can integrate into the Connections UI

● Check Show in Share dialog after the gadget if you want to allow the gadget to integrate into the ShareBox● You can then choose where in

the ShareBox the gadget will appear

● Check Show for Activity stream events when registering embedded experience gadgets

Page 22: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation22

Proxy Settings

● Gadgets can make API requests using gadgets.io.makeRequest and these requests go through a proxy

● You can restrict a gadget's access through the proxy to only be outside the intranet (Websphere SSO domain) or to all servers

● In addition you can create custom proxy rules by editing proxy-policy.dynamic file on your Connections server

Page 23: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation23

DEMO

Page 24: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation24

Service Mappings

● Service mappings allow you to configure which OAuth 2 services your gadget can use● In this case Connections is

acting like an OAuth 2 client

● Service Mappings are registered on the Connections server using the NewsOAuth2ConsumerService in a wsadmin console

● You can then tie the services you registered there to the gadget using this UI

Page 25: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation25

Using Oauth 2 Within Your Gadgets

● You may use OAuth 2 to authorize your gadgets on your user's behalf● SmartCloud For Social Business and Connections 4 are both OAuth

providers● You must define the OAuth services you want to use in your gadget in

the OAuth 2 section in your gadget ModulePrefs● Make sure to require the oauthpopup feature in you gadget as well

● Register your gadget with the OAuth provider● You will be asked for a callback URL, the callback URL for

Connections is https://{host}/connections/opensocial/gadgets/oauth2callback

Page 26: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation26

OAuth makeRequest Example

var params = {};params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.OAUTH2;params[gadgets.io.RequestParameters.OAUTH_SERVICE_NAME] = 'serviceName'; gadgets.io.makeRequest('url', function(response) { if (response.oauthApprovalUrl) { var onOpen = function() {}; var onClose = function() {}; var popup = new gadgets.oauth.Popup(response.oauthApprovalUrl, null, onOpen, onClose); var click = popup.createOpenerOnClick(); click(); } else if (response.data) { //We have data so lets use it! } else { gadgets.error('something went wrong'); } }, params);

Page 27: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation27

Registering OAuth 2 Clients and Providers

● In order for you gadget to use OAuth 2, an OAuth 2 provider needs to be registered first● The provider stores the details about doing the OAuth dance

● A client can then be registered to use that provider● The client contains the OAuth keys and secrets you obtained when

registering the app with the provider● There can be many clients tied to a single provider

Page 28: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation28

Using The Service Mapping

● On the widget administration page...● Click Add Mapping● Select from the available OAuth Clients, the one you registered in the

wsadmin console should be available● Enter a service name, this should match the service name in the OAuth

2 section of the gadget XML

Page 29: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation29

OpenSocial Resources

● Configuring OAuth: http://www-10.lotus.com/ldd/lcwiki.nsf/xpDocViewer.xsp?lookupName=IBM+Connections+4.0+documentation#action=openDocument&res_title=Configuring_OAuth_for_gadgets_ic40&content=pdcontent

● Configuring Gadgets: http://www-10.lotus.com/ldd/lcwiki.nsf/xpDocViewer.xsp?lookupName=IBM+Connections+4.0+documentation#action=openDocument&res_title=Administering_Home_page_widgets_ic40&content=pdcontent

● ShareBox Gadgets: http://www-10.lotus.com/ldd/lcwiki.nsf/xpDocViewer.xsp?lookupName=IBM+Connections+4.0+documentation#action=openDocument&res_title=Adding_new_ways_to_share_content_ic40&content=pdcontent

Page 30: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation30

OpenSocial Resources

● EE Gadgets For The Activity Stream: http://www-10.lotus.com/ldd/lcwiki.nsf/dx/Building_Embedded_Experience_gadgets_for_third-_party_IBM_Connections_Activity_Streams

● Developing Gadgets For Connections: https://www.ibm.com/developerworks/lotus/documentation/osgadgetconnections4/index.html?ca=drs-

● Developing Gadgets For IBM's Social Business Platform: http://ibmtvdemo.edgesuite.net/software/lotus/connect_2013/01-Sunday/JMP102/JMP102.html

● OpenSocial Explorer: http://opensocial.github.io/explorer/

Page 31: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation31

Resources and Questions

● Home page: http://ibmdw.net/social● SDK: http://ibmsbt.openntf.org● GitHub: https://github.com/OpenNTF/SocialSDK● StackOverflow: #ibmsbt● Twitter: @ibmsbt● YouTube: http://youtube.com/ibmsbt● Playground: http://bit.ly/sbtplayground

Page 32: How to add your own OpenSocial Gadgets to IBM Connections

© 2013 IBM Corporation32

Acknowledgements and Disclaimers

© Copyright IBM Corporation 2013. All rights reserved.

– U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

IBM, the IBM logo, ibm.com, Rational, the Rational logo, Telelogic, the Telelogic logo, Green Hat, the Green Hat logo, and other IBM products and services are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. If these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol (® or ™), these symbols indicate U.S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at www.ibm.com/legal/copytrade.shtml

Other company, product, or service names may be trademarks or service marks of others.

Availability: References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates.

The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views. They are provided for informational purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance or advice to any participant. While efforts were made to verify the completeness and accuracy of the information contained in this presentation, it is provided AS-IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this presentation or any other materials. Nothing contained in this presentation is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software.

All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results.