Smooch Core is the most basic for interaction possible for the Smooch API. It wraps the public API in a convenient Javascript API.
This library is meant to be used server-side with Node.js.
$ npm install smooch-core --save
If a method is missing please file an Issue, or better yet make a PR!
var SmoochCore = require('smooch-core');
// using generated JWT
var smooch = new SmoochCore({
jwt: 'some-jwt'
});
// using JWT components
var smooch = new SmoochCore({
keyId: 'some-key',
secret: 'some-secret',
scope: 'appUser', // account, app, or appUser
userId: 'some-id' // only required for appUser scope
});
// ...
smooch.webhooks.get(id).then(function(response) {
// do something with the response.
});
If you need to use a proxy, you can use one of the many proxies available, as long as it an http.Agent
implementation. You only need to pass the agent when creating the SmoochCore instance.
var SmoochCore = require('smooch-core');
var SocksProxyAgent = require('socks-proxy-agent');
var proxy = process.env.http_proxy || 'socks:https://localhost:8123';
var agent = new SocksProxyAgent(proxy);
var smooch = new SmoochCore({
keyId: 'some-key',
secret: 'some-secret',
httpAgent: agent
});
Below is a list of methods included in Smooch Core. For comprehensive documentation of Smooch Core and its methods see Smooch's REST API docs.
For more detailed information and example usage of each of the following methods, click on the method's 🔗 icon.
Method | Description | Link |
---|---|---|
appUsers Module | ||
appUsers.get |
Get a specific appUser. | 🔗 |
appUsers.update |
Update an appUser’s basic profile information and specify custom profile data. | 🔗 |
appUsers.deleteProfile |
Delete an appUser’s profile. | 🔗 |
appUsers.create |
Pre-create an appUser object before that appUser runs your app for the first time. | 🔗 |
appUsers.linkChannel |
Link appUser to continue conversation on his/her preferred channel. | 🔗 |
appUsers.unlinkChannel |
Remove the specified channel from the appUser’s clients. | 🔗 |
appUsers.getMessages |
Get the specified appUser’s conversation history. | 🔗 |
appUsers.resetUnreadCount |
Reset the unread count of the conversation to 0. | 🔗 |
appUsers.typingActivity |
Notify Smooch when an app maker starts or stops typing a response. | 🔗 |
appUsers.sendMessage |
Post a message to or from the appUser. | 🔗 |
appUsers.deleteMessages |
Clears the message history for an appUser, permanently deleting all messages. | 🔗 |
appUsers.getChannels |
Get all of the appUser’s channel entity Ids. | 🔗 |
appUsers.getBusinessSystems |
Get all the business systems to which an appUser’s conversation is connected. | 🔗 |
appUsers.getAuthCode |
Get auth code. | 🔗 |
appUsers.getLinkRequests |
Generate a transfer URL for a given channel type. | 🔗 |
menu Module | ||
menu.get |
Get the specified app’s menu. | 🔗 |
menu.configure |
Configure the specified app’s menu. | 🔗 |
menu.remove |
Remove the specified app’s menu. | 🔗 |
webhooks Module | ||
webhooks.list |
List all webhooks configured for a given app. | 🔗 |
webhooks.create |
Create a webhook for the specified app. | 🔗 |
webhooks.get |
Get individual webhooks. | 🔗 |
webhooks.update |
Update existing webhooks. | 🔗 |
webhooks.delete |
Delete specified webhook. | 🔗 |
apps Module | ||
apps.create |
Create a new app. | 🔗 |
apps.list |
List all configured apps. | 🔗 |
apps.get |
Get the specified app. | 🔗 |
apps.delete |
Delete the specified app, including all its enabled integrations. | 🔗 |
apps.keys.create |
Create a secret key for the specified app. | 🔗 |
apps.keys.list |
List all secret keys for the sepcified app. | 🔗 |
apps.keys.get |
Get a secret key. | 🔗 |
apps.keys.delete |
Delete a secret key. | 🔗 |
apps.keys.getJwt |
Get an app-scoped JWT signed using the requested keyId/secret pair. | 🔗 |
integrations Module | ||
integrations.create |
Create a new integration. | 🔗 |
integrations.list |
List all integrations for a given app. | 🔗 |
integrations.get |
Return the specified integration. | 🔗 |
integrations.update |
Update the specified integration. | 🔗 |
integrations.delete |
Delete the specified integration. | 🔗 |
integrations.menu.get |
Get the specified integration’s menu. | 🔗 |
integrations.menu.update |
Update the specified integration’s menu. | 🔗 |
integrations.menu.delete |
Delete the specified integration's menu. | 🔗 |
serviceAccounts Module | ||
serviceAccounts.create |
Create a new service account. | 🔗 |
serviceAccounts.list |
List all service accounts. | 🔗 |
serviceAccounts.get |
Get the specified service account. | 🔗 |
serviceAccounts.delete |
Delete the specified service account. | 🔗 |
serviceAccounts.keys.create |
Create a secret key for the specified service account. | 🔗 |
serviceAccounts.keys.list |
List all secret keys for the specified service account. | 🔗 |
serviceAccounts.keys.get |
Get a specified secret key for the specified service account. | 🔗 |
serviceAccounts.keys.delete |
Delete a specified secret key for the specified service account. | 🔗 |
serviceAccounts.keys.getJwt |
Get an account-scoped JWT signed using the requested keyId/secret pair. | 🔗 |
attachments Module | ||
attachments.create |
Upload an attachment to Smooch to use in future messages. | 🔗 |
- Merge your changes in
master
. - Wait for CircleCI to run the test suite on
master
. - Run
npm run release -- <level> --run
. Replace<level>
withpatch
,minor
,major
depending on which type of version this is.