Intent
Need to create an interface for enabling Access to Content on Sunbird across different apps like Read Along,Games etc.
Note: Assumption of this specification is based on the apps being able to support these intents as part of their implementation.
Documentation is categorised into multiple sections:
WorkFlow
Vendor Registration of Apps to Sunbird
Global Vendor Registration API
Local Vendor Registration by Deep Linking
Technical Specification for third party apps
Param Data Supported
Summary Event Spec
API Documentation
Intent Handling
Approaches
Work Flow
Registration of External Apps
Sunbird Third Party App Interaction
Vendor registration of Apps to Sunbird
Global Vendor Registration API
Each Vendor can be registered as part of Global Configuration for Sunbird to have app links being enabled.
Code Block | ||
---|---|---|
| ||
{ identifier: "", name: "", logo: "", appName: "", packageId: "", target: { mimeType : [], contentType : [], .... // All content attributes }, appDetails: { organization: "", id: "", version: "" }, vendorCode: "" // Internally assigned } |
Vendor CRUD API (or) Form Configuration Supported.
Local Vendor Registration by Deep Linking
Enabling of Deep link in Sunbird for local registration restricted to device.
Device hears for deep links to register vendor apps locally (Restricted to particular device).Steps
Vendor app needs to call a deep link of Sunbird app.
Sunbird App as part of handling deep link will try to persist vendor information locally on app’s data.
Any subsequent invocation of intent from Sunbird will show globally registered apps for Sunbird along with locally registered apps in devices.
deeplink Url :
sunbird://register?name: "", logo: "", appName: "", packageId: "",target:”{}”,appDetails:”{}”
Parameter | DataType | Description |
---|---|---|
name (M) | String | Name of the vendor |
logo (M) | String | App logo Url |
appName (M) | String | App Name |
packageId (M) | String | PackageID of the app |
target (M) | String | Targeted content query |
appDetails (O) | String | App details |
extra (O) | String | Misceallaneous Information to be sent |
Approaches
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
Approach 1 : (Deeper Integration)
Targeted Application need to fetch the data from platform. Understand the Content Metadata and play the content. Targeted Application need to respond back with Summary Data
Pros It can enable bazaar apps to index the content in their own environment. It could open up the Sunbird APIs for most of the bazaar players. Cons Data to be sent might be huge Spec is rigid. If the spec changes there can be inconsistency between various version of both apps |
Expand | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
Approach 2 : (Lighter Integration)Intent provides basic information such as content do_id, context information & artifactUrl and mimeType. Bazaar Apps can launch the artifactUrl directly based on mimeType.
Pros Need to develop a secure mechanism to serve only sun bird specific resources. Cons Data to be sent might be huge Spec is rigid. If the spec changes there can be inconsistency between various version of both apps |
Expand | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
Intent provides the basic information such as content URL, mimeType & user/session context.
Pros
Context Information Following are the contextual params passed to the reader app
|
Technical Specification for Third Party Apps
Expand | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||
|
Expand | |||||
---|---|---|---|---|---|
| |||||
https://github.com/sunbird-specs/Telemetry/blob/main/v3_event_details.md/#summary
All the reader apps need to send summary data back to Sunbird app via intent data. |
Expand | ||||
---|---|---|---|---|
| ||||
The third party apps should do a HTTP GET call on the contentUrl parameter sent via the intent data
Response Data Structure
For More Details on the content model refer Sunbird Documentation |
Expand | ||||
---|---|---|---|---|
| ||||
Intent Handling
|