Available Integrations

Github

requested scopes as parameter on auth url redirect authorized scopes returned in accessToken answer (may be a subset of requested scopes)

list of valid scopes

Note: see Normalized Scopes

Linkedin

requested scopes configured in Linkedin. Example link (will not work if you have no developer permission for this app). requested scopes may be overriden on auth url redirect

Facebook

requested scopes as parameter on auth url redirect

authorized scopes with Inspect access tokens endpoint

Note: see Facebook reference for more details over scopes

Twitter

requested scopes configured in Twitter. Example link (will not work if you have no developer permission for this app).

Flickr

request scopes as parameter on auth url redirect

list of valid scopes

Dropbox

permissions defined in creation

Bitbucket

requested scopes configured in Bitbucket.

Google

How to add another integration

  • Create domain entities
    • socialAPI (extends api.SocialAPI)
    • socialUser (extends user.SocialUser)
  • Create domain relationships
    • org.fenixedu.bennu.core.domain.User - socialUser
    • org.fenixedu.bennu.core.domain.Bennu - socialAPI
    • socialAPI - socialUser
  • Set Bennu on socialAPI constructor
  • Implement singleton pattern on socialAPI
    • private constructor
    • static getInstance()
    • [Atomic TxMode.WRITE] private initialize()
  • Implement abstract methods on socialAPI
    • revokeAllAccesses()
    • revokePermission(User)
    • getAuthenticatedUser(User)
    • getAuthenticationUrlForUser(User)
    • getCallbackURL()
  • Implement methods on socialUser
    • constructor with User
    • delete()
  • Create GoogleService
  • Add googleService to SocialAdminController
  • Add socialAPI to SocialAdminController
    • admin
    • adminSave
  • Add socialAPI to admin interface (admin.jsp)
    • with socialAPI
    • resources for socialAPI name
    • modal for socialAPI config
  • Add socialAPI to SocialUserController
  • Add socialAPI to user interface (user.jsp)
    • with socialAPI
    • modal for socialAPI revoke
  • Add socialAPI to SocialCallbackController
  • Add socialAPI scopes anotation
    • RequiresSocialAPI
    • SocialInitializer.onStartup()
    • socialAPI.ensureConsistentScope()