Thanks for starting this topic @jehunter5811!
The way that multi-reader storage is implemented could allow for reading information from another application somewhat directly, though the approach would involve a little bit of hacking, and it interacts with a component whose interface, while unlikely to change, is not yet fully specified.
Basically – when an application uses multi-player storage, it adds an entry to the user’s profile in the app array.
For example: If you look at @yukan.id, https://core.blockstack.org/v1/users/yukan.id , you’ll see these entries.
...
"apps": {
"http://app.graphitedocs.com": "https://gaia.blockstack.org/hub/143tnkzivRBSSvmyoW1wdMSnpdRzYFHuRW/",
"http://localhost:8080": "https://gaia.blockstack.org/hub/1DDUqfKtQgYNt722wuB4Z2fPC7aiNGQa5R/",
"http://publik.ykliao.com": "https://gaia.blockstack.org/hub/179isMHFbdMKFERKrAMUQhrbEynNR63vn2/",
"https://www.chat.hihermes.co": "https://gaia.blockstack.org/hub/1P9upXUxyNEAAPd3xVoLS5uJk1VRLYcKqZ/",
"https://www.stealthy.im": "https://gaia.blockstack.org/hub/1LbgBZcksXJugXSzSzszFX9KajkFrNBtNW/"
},
...
You can find these entries using blockstack.js
:
> let bsk = require('blockstack')
> let apps
> bsk.lookupProfile('yukan.id').then( profile => profile.apps ).then( console.log )
{ 'http://localhost:8080': 'https://gaia.blockstack.org/hub/1DDUqfKtQgYNt722wuB4Z2fPC7aiNGQa5R/',
'http://publik.ykliao.com': 'https://gaia.blockstack.org/hub/179isMHFbdMKFERKrAMUQhrbEynNR63vn2/',
'https://www.chat.hihermes.co': 'https://gaia.blockstack.org/hub/1P9upXUxyNEAAPd3xVoLS5uJk1VRLYcKqZ/',
'http://app.graphitedocs.com': 'https://gaia.blockstack.org/hub/143tnkzivRBSSvmyoW1wdMSnpdRzYFHuRW/',
'https://www.stealthy.im': 'https://gaia.blockstack.org/hub/1LbgBZcksXJugXSzSzszFX9KajkFrNBtNW/' }
Now – that can tell you what app the user has installed. In order to read data from the application (so long as the data is public, and therefore unencrypted) – you can:
let baseUrl = apps['https://www.stealthy.im']
let fileToRead = 'sharedInfo.json'
fetch(`${baseUrl}${fileToRead}`).then(console.log)