GithubHelp home page GithubHelp logo

drift-chat's Introduction

Drift Chat

Drift API - Node Wrappers -

All calls support both Callbacks or Promises.

Config

npm install --save drift-chat

const drift = new Drift("--OAuthToken--");

Contacts API

Get Contact - Promise

drift.getContact(userId)
  .then((body) =>
    console.log(body))
  .catch((err) =>
    console.log(err));

Get All Contacts

drift.getAllContacts() =>

Conversations API

Get All Messages

drift.getConvo(message) =>

Post Message

const reply = {
    body: string (optional),
    buttons: [(Message Button)] (optional),
    type: {chat, private_note, private_prompt, edit},
    editedMessageId: int (optinal),
    editType: {delete, replace, replace_body, replace_buttons} (optional)
}

drift.postMessage(message, reply) =>

OAuth2

Handshake Example

Drift Docs

bot.get('/oauth', (req, res) => {
  const drift = new Drift();
  const options = {
    clientId: process.env.CLIENTID,
    clientSecret: process.env.DRIFTKEY,
    code: req.query.code,
  };

  drift.oauth(options, async function(err,driftToken){
    if(err){
      console.log(err);
    } else {
      const teamObj = {
        orgId: driftToken.orgId,
        driftToken: driftToken
      };
      const team = await Team.update({orgId: driftToken.orgId},teamObj,{upsert:true, setDefaultsOnInsert: true});
      console.log(team)
    }
  });
});

Refresh Token Example

Drift Docs

const options = {
  clientId: process.env.CLIENTID,
  clientSecret: process.env.DRIFTKEY,
  refreshToken: team.driftToken.refreshToken
};

drift.refreshToken(options,function(err,driftToken){
  if(err){
    console.log(err);
  } else {
    team.driftToken = driftToken
    team.save();
  }
});

TODO

  • Pagination
  • Contacts Search Options (email)
  • Update Contact
  • Contact Tags

drift-chat's People

Contributors

mewelling avatar rubadeau avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.