Obsolete.rolodex
Rolodex for Open Peer
Install / Use
/learn @hookflash/Obsolete.rolodexREADME
Status: DEV
Rolodex for Open Peer
Having a distributed and secure communication system like Open Peer is quite useless if you have nobody to talk with.
This rolodex SDK supports the following:
- Integration with passport for authentication with 120+ services.
- Contact federation for any service with a contacts API (that we have a plugin for).
- Q promise based AMD-compatible client API.
- connect middleware to service client requests.
- Contact information normalized to hCard properties.
- Communication with services scheduled via kickq ( currently disabled due to kickq bug )
- Contacts and service status cached in redis.
- Easy horizontal round-robin scaling via shared-noting architecture (requires central redis).
Example
cd example
make install
# Configure services in `rolodex.config.json` (see 'Configuration' below)
make run
Usage
Install:
npm install openpeer-rolodex
# Provision a Redis database
When you first run your application, required dependencies for any configured service will be automatically installed. You can also install these manually:
cd ./lib/plugin/<service>
npm install
Integrate:
- Server-side - See
./example/server.js. - Client-side - See
./example/ui/index.htmland./example/ui/app.js.
Configuration
For each service you want to integrate with you need to:
- Create an application on the service.
- Configure the service in
rolodex.config.json.
The rolodex.config.json file must be structured as follows:
{
"allow": {
# Optional for cross-domain access.
"hosts": [
"localhost"
]
},
"db": {
"redis": {
"host": "<redis host>",
"port": <redis port>,
# The following are defaults and may be omitted.
"password": "",
"prefix": "rolodex:"
}
},
"routes": {
# The following are defaults and may be omitted.
client: "/.openpeer-rolodex/client",
auth: "/.openpeer-rolodex/auth",
authCallback: "/.openpeer-rolodex/callback",
logout: "/.openpeer-rolodex/logout",
refetch: "/.openpeer-rolodex/refetch",
services: "/.openpeer-rolodex/services",
contacts: "/.openpeer-rolodex/contacts"
},
"services": [
// One or more of the service config objects below.
]
}
GitHub
Create application here https://github.com/settings/applications
with callback URL http://localhost:8080/.openpeer-rolodex/callback/github.
{
"name": "github",
"passport": {
"clientID": "<Client ID>",
"clientSecret": "<Client Secret>"
}
}
Create application here https://dev.twitter.com/apps
with callback URL http://127.0.0.1:8080/.openpeer-rolodex/callback/twitter.
{
"name": "twitter",
"passport": {
"consumerKey": "<Consumer key>",
"consumerSecret": "<Consumer secret>"
}
}
Create application here https://www.linkedin.com/secure/developer
{
"name": "linkedin",
"passport": {
"apiKey": "<API Key>",
"secretKey": "<Secret Key>"
}
}
Create application here https://developers.facebook.com/apps
{
"name": "facebook",
"passport": {
"appID": "<App ID>",
"appSecret": "<App Secret>"
}
}
License
Related Skills
node-connect
345.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
104.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
