SlideShare a Scribd company logo
1 of 30
Bring your Domino applications into
the Activity Stream

Frank van der Linden
Roadmap
•   Introduction
•   IBM Connections 4
•   Open standards
•   Setup the environment
•   Connect to the Activity Stream
•   Q and A




                      Joost van Dongen   11/28/20
                                         12
Frank van der Linden
• I live in Utrecht in the Netherlands.
• My role is XPages/Domino/Web developer at e-
  office since 2000. So I started with Lotus Notes
  4.5.x.
• I develop XPages application since the introduction
  of XPages in Lotus Notes 8.5.0.
• In my sparetime I do a lot of running and then I
  mean a lot.
• And I am married and have 2 daughters

  @flinden68

   http://www.domino-weblog.nl


   nl.linkedin.com/in/flinden68


   fli@e-office.com
And he works at e-office
• Celebrated in 2011 it’s 20ste
  anniversary
• First Lotus Business Partner in
  the Netherlands
• E-office is IBM Premier
  Business Partner, Microsoft
  Gold Partner and RIM Alliance
  Elite partner
IBM Connections 4
IBM Connections 4
What is oAuth
• OAuth (Open Authorization) is an open
  standard for authorization
• It allows users to share their resources stored
  on one site with another site without having to
  hand out their credentials
• OAuth allows users to hand out tokens
  instead of credentials to their data hosted by a
  given service provider.




Source: http://en.wikipedia.org/wiki/OAuth
oAuth1.0, the 3 leg dance
oAuth in the real world
OpenSocial
• Public specification that defines a
  component hosting environment (container)
• Based on HTML and Javascript, as well as
  the Google gadgets framework
• OpenSocial adopted support for Activity
  Streams format
• OpenSocial API and oAuth support




                  Source:http://en.wikipedia.org/wiki/OpenSocial
Activity Stream
• Stream of information
• Support of oAuth and OpenSocial gadget
  specification
• API’s are available to connect external systems
• Part of Connections 4 and IBM Notes 9.0 Social
  Edition
Get started – step 1: get access
• If you don’t have an account for Greenhouse, go get it
  (https://greenhouse.lotus.com)
Get started – step 2: register your app

• oAuth is used, so you need to register your
  app.(https://greenhouse.lotus.com/vulcan/sec
  urity/provider/appList?serviceProvider=vulcan
  Toolkit)
Get started – Register your app
• oAuth is used, so you need to register your
  app.(https://greenhouse.lotus.com/vulcan/security/pr
  ovider/appList?serviceProvider=vulcanToolkit)
Get started – Get the databases
• Get the Extension Library of OpenNTF, the 8.5.3 code stream
• Install the Extension Library on Designer and Domino server
• Deploy the Social Enabler database to your Domino server

• Deploy the WebsecurityStore database to the root of your
  Domino server

• And sign both databases with the correct ID.
Get started – Go to the Websecurity store
• The startpoint is KeysApplications.xsp
Get started – Fill in the oAuth keys




•   https://greenhouse.lotus.com:443/vulcan/security/provider/requestToken
    https://greenhouse.lotus.com:443/vulcan/security/provider/authorize
    https://greenhouse.lotus.com:443/vulcan/security/provider/accessToken
In to the code – Faces-config.xml
• This file lists bean resources
  and navigation rules
• It is located in the WEB-INF
  folder in the package explorer.
Faces-config.xml - NSFStore
• NSFStore managed bean is used for the location of the
  websecurity database
• It will be used by other Managed beans to store oAuth
  data.
Faces-config.xml – greenHouse managed
bean
• greenHouse managed bean is used to specify the
  oAuthEndpoint, and were to store.
• AppId is the id, who is used as Application name in the
  SBT application registration page
How to get the entries of the Activity Stream

• Create a XPage, and name it
  ‘ActivityStream’
• Drop a viewpanel on this XPage
• Select Datasource later
• Goto the all properties and select
  as datasource the
  ActivityStreamData.
How to get the entries of the Activity Stream

• The service URL: /vulcan/shindig/rest/activitystreams
• Endpoint: greenHouse, as stated in the Faces-config.xml
• Give the datasource a variable name, so you can connect
  to it in your ViewPanel
• Specify in your ViewPanel as value the variable name of
  the datasource
• And give the ViewPanel also a variable name
Get the actual data out of the stream



Activity Stream On Greenhouse   Activity Stream in Yellow and Blue system
Get access to some usefull properties

• Title: entry.title
• Posted date: new
  java.util.Date(parseInt(entry.postedTime)
• ID: entry.id
• Image: entry.actor.image.url
• Body: entry.body
• JSON of the links to the source:
  entry.standardLinks.alternate[0].inline
Post to the Activity Stream

• Use the Objectdata
• ObjectData has 2 components
    CreateObject: to compose the object JSON
    SaveObject: save the object to an url.
Developer tip: Embedded experience
without oAuth2
• Activate the boostrap page on Connections




• Add to your gadget.xml develop parameters
  &__dev_proxyPolicy__=intranet_access&__dev_policySet__=GADGET_BUILT
  IN_INTERNAL&__dev_appContexts__=EMBEDXP

  More details: http://public.dhe.ibm.com/software/dw/lotus/OS_gadget_IC4_final.pdf
Sample JSON to post entry
{
"generator": {
"image": { "url": "http://www.e-office.com/eog/nl/website2011.nsf/img_logo.png"},
"id": "Demo app",
"displayName": "XPages Post - Demo app",
"url": "http://ld09.e-office.com/"
},
"actor": {"id": "@me"},
"verb": "post",
"title": "Post from a XPages",
"content": " You have created a post from XPage.",
"updated": "2012-08-23T12:00:00.000Z",
"object": {
"summary": "Post from a XPages",
"objectType": "note",
"id": "xpages12",
"displayName": "Post from a XPages",
"url": "http://ld09.e-office.com/demo/demoAS.nsf/"
},
"connections":{
"actionable":"false",
"broadcast": "true",
"canUnFollow": "true",
"saved":"false"
},
"openSocial":{
"embed": {
"gadget": "http://ld09.e-
office.com/demo/demoAS.nsf/gadget.xml?openfileresource&__dev_proxyPolicy__=intranet_access&__dev_policySet__=GADGET_BUILTIN_INTER
NAL&__dev_appContexts__=EMBEDXP",
"context": ""
},
"deliverTo":[
{"objectType":"person",
"id":"@me"
}
]
}
}
Questions
Usefull resources
• Extension Library
   – http://extlib.openntf.org/
• Social Enabler
   – http://socialenabler.openntf.org/
• Activity Stream Community (GreenHouse)
   – https://greenhouse.lotus.com/communities/service/html/com
     munityview?communityUuid=cab9d6f0-d6f0-4b71-ae49-
     8cad85a454fd
• Social Business Toolkit Community
  (DeveloperWorks)
   – https://www.ibm.com/developerworks/mydeveloperworks/gro
     ups/service/html/communityview?communityUuid=0f357879
     -ccee-4927-98c1-7bb88d5dc81f
Contact details


    @flinden68

     http://www.domino-weblog.nl


     nl.linkedin.com/in/flinden68



       fli@e-office.com

More Related Content

What's hot

Integrating IBM Connections with ECM using IBM Content Navigator
Integrating IBM Connections with ECM using IBM Content NavigatorIntegrating IBM Connections with ECM using IBM Content Navigator
Integrating IBM Connections with ECM using IBM Content Navigator
Elinar
 

What's hot (20)

IoT in the Cloud: Build and Unleash the Value in your Renewable Energy System
IoT in the Cloud: Build and Unleash the Value in your Renewable Energy SystemIoT in the Cloud: Build and Unleash the Value in your Renewable Energy System
IoT in the Cloud: Build and Unleash the Value in your Renewable Energy System
 
Improving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous IntegrationImproving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous Integration
 
IBM Watson Work Services Development
IBM Watson Work Services DevelopmentIBM Watson Work Services Development
IBM Watson Work Services Development
 
One Firm's Wild Ride to The Cloud
One Firm's Wild Ride to The CloudOne Firm's Wild Ride to The Cloud
One Firm's Wild Ride to The Cloud
 
Migrating to Microsoft Office 365
Migrating to Microsoft Office 365Migrating to Microsoft Office 365
Migrating to Microsoft Office 365
 
AD101: IBM Domino Application Development Futures
AD101: IBM Domino Application Development FuturesAD101: IBM Domino Application Development Futures
AD101: IBM Domino Application Development Futures
 
2 Speed IT powered by Microsoft Azure and Minecraft
2 Speed IT powered by Microsoft Azure and Minecraft2 Speed IT powered by Microsoft Azure and Minecraft
2 Speed IT powered by Microsoft Azure and Minecraft
 
ECS19 - Johan Delimon - Keep your Skype for Business Hybrid working like a ch...
ECS19 - Johan Delimon - Keep your Skype for Business Hybrid working like a ch...ECS19 - Johan Delimon - Keep your Skype for Business Hybrid working like a ch...
ECS19 - Johan Delimon - Keep your Skype for Business Hybrid working like a ch...
 
ECS19 - Jussi Roine - Microsoft 365 Deep Dive
ECS19 - Jussi Roine - Microsoft 365 Deep DiveECS19 - Jussi Roine - Microsoft 365 Deep Dive
ECS19 - Jussi Roine - Microsoft 365 Deep Dive
 
Integrate 2016 recap (Pieter Vandenheede @BTUGbe)
Integrate 2016 recap (Pieter Vandenheede @BTUGbe) Integrate 2016 recap (Pieter Vandenheede @BTUGbe)
Integrate 2016 recap (Pieter Vandenheede @BTUGbe)
 
[Delimon] Unraveling Teams vs Skype for Business
[Delimon] Unraveling Teams vs Skype for Business[Delimon] Unraveling Teams vs Skype for Business
[Delimon] Unraveling Teams vs Skype for Business
 
MWC Mobile Interoperability and Business Productivity (Yury Buluy)
MWC Mobile Interoperability and Business Productivity (Yury Buluy)MWC Mobile Interoperability and Business Productivity (Yury Buluy)
MWC Mobile Interoperability and Business Productivity (Yury Buluy)
 
Office 365 deployment fast track
Office 365 deployment fast trackOffice 365 deployment fast track
Office 365 deployment fast track
 
Integrating IBM Connections with ECM using IBM Content Navigator
Integrating IBM Connections with ECM using IBM Content NavigatorIntegrating IBM Connections with ECM using IBM Content Navigator
Integrating IBM Connections with ECM using IBM Content Navigator
 
Integration Monday - BizTalk Migrator Deep Dive
Integration Monday - BizTalk Migrator Deep DiveIntegration Monday - BizTalk Migrator Deep Dive
Integration Monday - BizTalk Migrator Deep Dive
 
Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...
Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...
Developing hybrid SharePoint apps that run on-premise and in the cloud - Bram...
 
Serverless integrations using Azure Logic Apps (intro)
Serverless integrations using Azure Logic Apps (intro)Serverless integrations using Azure Logic Apps (intro)
Serverless integrations using Azure Logic Apps (intro)
 
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
 
Building advanced Project Server workflows with Nintex Workflow for Project S...
Building advanced Project Server workflows with Nintex Workflow for Project S...Building advanced Project Server workflows with Nintex Workflow for Project S...
Building advanced Project Server workflows with Nintex Workflow for Project S...
 
What's new in sharepoint 2016
What's new in sharepoint 2016What's new in sharepoint 2016
What's new in sharepoint 2016
 

Similar to how to connect your app to the activity stream with x-pages

122 naver-deview2013-tizen-universal-device-platform-r20131014
122 naver-deview2013-tizen-universal-device-platform-r20131014122 naver-deview2013-tizen-universal-device-platform-r20131014
122 naver-deview2013-tizen-universal-device-platform-r20131014
NAVER D2
 
OW2 Exo Platform Open Social Portal Linuxtag09
OW2 Exo Platform Open Social Portal Linuxtag09OW2 Exo Platform Open Social Portal Linuxtag09
OW2 Exo Platform Open Social Portal Linuxtag09
Catherine Nuel
 

Similar to how to connect your app to the activity stream with x-pages (20)

No need to leave Connections. Bring your Domino applications into the Activit...
No need to leave Connections. Bring your Domino applications into the Activit...No need to leave Connections. Bring your Domino applications into the Activit...
No need to leave Connections. Bring your Domino applications into the Activit...
 
Dnug2012 yellow and blue stream
Dnug2012 yellow and blue streamDnug2012 yellow and blue stream
Dnug2012 yellow and blue stream
 
Uklug2012 yellow and blue stream
Uklug2012 yellow and blue streamUklug2012 yellow and blue stream
Uklug2012 yellow and blue stream
 
OpenSocial and Mixi platform
OpenSocial and Mixi platformOpenSocial and Mixi platform
OpenSocial and Mixi platform
 
Syncitall
SyncitallSyncitall
Syncitall
 
Drupal8 for Symfony developers - Dutch PHP
Drupal8 for Symfony developers - Dutch PHPDrupal8 for Symfony developers - Dutch PHP
Drupal8 for Symfony developers - Dutch PHP
 
Share point development 101
Share point development 101Share point development 101
Share point development 101
 
CNIT 121: 14 Investigating Applications
CNIT 121: 14 Investigating ApplicationsCNIT 121: 14 Investigating Applications
CNIT 121: 14 Investigating Applications
 
Mobile web development
Mobile web developmentMobile web development
Mobile web development
 
Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite
Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite
Couchbase Mobile Ideathon in Tokyo 2014.08.29: Developing with couchbase lite
 
WINDOWS SERVER 2012 R2: Bring Your Own Device Using AD Federation Services
WINDOWS SERVER 2012 R2: Bring Your Own Device Using AD Federation ServicesWINDOWS SERVER 2012 R2: Bring Your Own Device Using AD Federation Services
WINDOWS SERVER 2012 R2: Bring Your Own Device Using AD Federation Services
 
IBM Connect2014 JMP106
IBM Connect2014 JMP106IBM Connect2014 JMP106
IBM Connect2014 JMP106
 
Sviluppare app per office
Sviluppare app per officeSviluppare app per office
Sviluppare app per office
 
Developing Apps for SharePoint Store
Developing Apps for SharePoint StoreDeveloping Apps for SharePoint Store
Developing Apps for SharePoint Store
 
iOS Application Pentesting
iOS Application PentestingiOS Application Pentesting
iOS Application Pentesting
 
OpenID Connect "101" Introduction -- October 23, 2018
OpenID Connect "101" Introduction -- October 23, 2018OpenID Connect "101" Introduction -- October 23, 2018
OpenID Connect "101" Introduction -- October 23, 2018
 
122 naver-deview2013-tizen-universal-device-platform-r20131014
122 naver-deview2013-tizen-universal-device-platform-r20131014122 naver-deview2013-tizen-universal-device-platform-r20131014
122 naver-deview2013-tizen-universal-device-platform-r20131014
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013
 
Portal and Intranets
Portal and Intranets Portal and Intranets
Portal and Intranets
 
OW2 Exo Platform Open Social Portal Linuxtag09
OW2 Exo Platform Open Social Portal Linuxtag09OW2 Exo Platform Open Social Portal Linuxtag09
OW2 Exo Platform Open Social Portal Linuxtag09
 

More from Frank van der Linden

More from Frank van der Linden (20)

Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Engage 2020: Hello are you listening, There is stream for everything
Engage 2020: Hello are you listening, There is stream for everythingEngage 2020: Hello are you listening, There is stream for everything
Engage 2020: Hello are you listening, There is stream for everything
 
NCUG 2019: Super charge your API’s with Reactive streams
NCUG 2019: Super charge your API’s with Reactive streamsNCUG 2019: Super charge your API’s with Reactive streams
NCUG 2019: Super charge your API’s with Reactive streams
 
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
 
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
 
Social connections14: Super charge your API’s with Reactive streams
Social connections14: Super charge your API’s with Reactive streamsSocial connections14: Super charge your API’s with Reactive streams
Social connections14: Super charge your API’s with Reactive streams
 
Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...
Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...
Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...
 
Spring forward: an introduction to Spring boot and Thymeleaf
Spring forward: an introduction to Spring boot and ThymeleafSpring forward: an introduction to Spring boot and Thymeleaf
Spring forward: an introduction to Spring boot and Thymeleaf
 
DEV03 - How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Real...
DEV03 - How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Real...DEV03 - How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Real...
DEV03 - How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Real...
 
Wcs-1785 How Watson, Bluemix, Cloudant and XPages can work together in a real...
Wcs-1785 How Watson, Bluemix, Cloudant and XPages can work together in a real...Wcs-1785 How Watson, Bluemix, Cloudant and XPages can work together in a real...
Wcs-1785 How Watson, Bluemix, Cloudant and XPages can work together in a real...
 
DEV-1129 How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Rea...
DEV-1129 How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Rea...DEV-1129 How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Rea...
DEV-1129 How Watson, Bluemix, Cloudant, and XPages Can Work Together In A Rea...
 
A (XPages) developers guide to Cloudant - MeetIT
A (XPages) developers guide to Cloudant - MeetITA (XPages) developers guide to Cloudant - MeetIT
A (XPages) developers guide to Cloudant - MeetIT
 
A (XPages) developers guide to Cloudant
A (XPages) developers guide to CloudantA (XPages) developers guide to Cloudant
A (XPages) developers guide to Cloudant
 
Let's serve your data
Let's serve your dataLet's serve your data
Let's serve your data
 
Let's server your Data
Let's server your DataLet's server your Data
Let's server your Data
 
Don't worry with bower
Don't worry with bowerDon't worry with bower
Don't worry with bower
 
Bccon use notes objects in memory and other useful
Bccon   use notes objects in memory and other usefulBccon   use notes objects in memory and other useful
Bccon use notes objects in memory and other useful
 
Use notes objects in memory and other useful java tips for xpages development
Use notes objects in memory and other useful java tips for xpages developmentUse notes objects in memory and other useful java tips for xpages development
Use notes objects in memory and other useful java tips for xpages development
 
An XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on DominoAn XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on Domino
 
The power of dots
The power of dotsThe power of dots
The power of dots
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Recently uploaded (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 

how to connect your app to the activity stream with x-pages

  • 1. Bring your Domino applications into the Activity Stream Frank van der Linden
  • 2. Roadmap • Introduction • IBM Connections 4 • Open standards • Setup the environment • Connect to the Activity Stream • Q and A Joost van Dongen 11/28/20 12
  • 3. Frank van der Linden • I live in Utrecht in the Netherlands. • My role is XPages/Domino/Web developer at e- office since 2000. So I started with Lotus Notes 4.5.x. • I develop XPages application since the introduction of XPages in Lotus Notes 8.5.0. • In my sparetime I do a lot of running and then I mean a lot. • And I am married and have 2 daughters @flinden68 http://www.domino-weblog.nl nl.linkedin.com/in/flinden68 fli@e-office.com
  • 4. And he works at e-office • Celebrated in 2011 it’s 20ste anniversary • First Lotus Business Partner in the Netherlands • E-office is IBM Premier Business Partner, Microsoft Gold Partner and RIM Alliance Elite partner
  • 7. What is oAuth • OAuth (Open Authorization) is an open standard for authorization • It allows users to share their resources stored on one site with another site without having to hand out their credentials • OAuth allows users to hand out tokens instead of credentials to their data hosted by a given service provider. Source: http://en.wikipedia.org/wiki/OAuth
  • 8. oAuth1.0, the 3 leg dance
  • 9. oAuth in the real world
  • 10. OpenSocial • Public specification that defines a component hosting environment (container) • Based on HTML and Javascript, as well as the Google gadgets framework • OpenSocial adopted support for Activity Streams format • OpenSocial API and oAuth support Source:http://en.wikipedia.org/wiki/OpenSocial
  • 11. Activity Stream • Stream of information • Support of oAuth and OpenSocial gadget specification • API’s are available to connect external systems • Part of Connections 4 and IBM Notes 9.0 Social Edition
  • 12. Get started – step 1: get access • If you don’t have an account for Greenhouse, go get it (https://greenhouse.lotus.com)
  • 13. Get started – step 2: register your app • oAuth is used, so you need to register your app.(https://greenhouse.lotus.com/vulcan/sec urity/provider/appList?serviceProvider=vulcan Toolkit)
  • 14. Get started – Register your app • oAuth is used, so you need to register your app.(https://greenhouse.lotus.com/vulcan/security/pr ovider/appList?serviceProvider=vulcanToolkit)
  • 15. Get started – Get the databases • Get the Extension Library of OpenNTF, the 8.5.3 code stream • Install the Extension Library on Designer and Domino server • Deploy the Social Enabler database to your Domino server • Deploy the WebsecurityStore database to the root of your Domino server • And sign both databases with the correct ID.
  • 16. Get started – Go to the Websecurity store • The startpoint is KeysApplications.xsp
  • 17. Get started – Fill in the oAuth keys • https://greenhouse.lotus.com:443/vulcan/security/provider/requestToken https://greenhouse.lotus.com:443/vulcan/security/provider/authorize https://greenhouse.lotus.com:443/vulcan/security/provider/accessToken
  • 18. In to the code – Faces-config.xml • This file lists bean resources and navigation rules • It is located in the WEB-INF folder in the package explorer.
  • 19. Faces-config.xml - NSFStore • NSFStore managed bean is used for the location of the websecurity database • It will be used by other Managed beans to store oAuth data.
  • 20. Faces-config.xml – greenHouse managed bean • greenHouse managed bean is used to specify the oAuthEndpoint, and were to store. • AppId is the id, who is used as Application name in the SBT application registration page
  • 21. How to get the entries of the Activity Stream • Create a XPage, and name it ‘ActivityStream’ • Drop a viewpanel on this XPage • Select Datasource later • Goto the all properties and select as datasource the ActivityStreamData.
  • 22. How to get the entries of the Activity Stream • The service URL: /vulcan/shindig/rest/activitystreams • Endpoint: greenHouse, as stated in the Faces-config.xml • Give the datasource a variable name, so you can connect to it in your ViewPanel • Specify in your ViewPanel as value the variable name of the datasource • And give the ViewPanel also a variable name
  • 23. Get the actual data out of the stream Activity Stream On Greenhouse Activity Stream in Yellow and Blue system
  • 24. Get access to some usefull properties • Title: entry.title • Posted date: new java.util.Date(parseInt(entry.postedTime) • ID: entry.id • Image: entry.actor.image.url • Body: entry.body • JSON of the links to the source: entry.standardLinks.alternate[0].inline
  • 25. Post to the Activity Stream • Use the Objectdata • ObjectData has 2 components  CreateObject: to compose the object JSON  SaveObject: save the object to an url.
  • 26. Developer tip: Embedded experience without oAuth2 • Activate the boostrap page on Connections • Add to your gadget.xml develop parameters &__dev_proxyPolicy__=intranet_access&__dev_policySet__=GADGET_BUILT IN_INTERNAL&__dev_appContexts__=EMBEDXP More details: http://public.dhe.ibm.com/software/dw/lotus/OS_gadget_IC4_final.pdf
  • 27. Sample JSON to post entry { "generator": { "image": { "url": "http://www.e-office.com/eog/nl/website2011.nsf/img_logo.png"}, "id": "Demo app", "displayName": "XPages Post - Demo app", "url": "http://ld09.e-office.com/" }, "actor": {"id": "@me"}, "verb": "post", "title": "Post from a XPages", "content": " You have created a post from XPage.", "updated": "2012-08-23T12:00:00.000Z", "object": { "summary": "Post from a XPages", "objectType": "note", "id": "xpages12", "displayName": "Post from a XPages", "url": "http://ld09.e-office.com/demo/demoAS.nsf/" }, "connections":{ "actionable":"false", "broadcast": "true", "canUnFollow": "true", "saved":"false" }, "openSocial":{ "embed": { "gadget": "http://ld09.e- office.com/demo/demoAS.nsf/gadget.xml?openfileresource&__dev_proxyPolicy__=intranet_access&__dev_policySet__=GADGET_BUILTIN_INTER NAL&__dev_appContexts__=EMBEDXP", "context": "" }, "deliverTo":[ {"objectType":"person", "id":"@me" } ] } }
  • 29. Usefull resources • Extension Library – http://extlib.openntf.org/ • Social Enabler – http://socialenabler.openntf.org/ • Activity Stream Community (GreenHouse) – https://greenhouse.lotus.com/communities/service/html/com munityview?communityUuid=cab9d6f0-d6f0-4b71-ae49- 8cad85a454fd • Social Business Toolkit Community (DeveloperWorks) – https://www.ibm.com/developerworks/mydeveloperworks/gro ups/service/html/communityview?communityUuid=0f357879 -ccee-4927-98c1-7bb88d5dc81f
  • 30. Contact details @flinden68 http://www.domino-weblog.nl nl.linkedin.com/in/flinden68 fli@e-office.com