メニュー

Expand
ページを評価:

Use Twilio Sync to create, read, update, delete peristent data

This Function showcases how you can send information into your Twilio Function from Twilio Studio's Run Function Widget and respond back with a JSON. Twilio Studio will parse the returned JSON and incorporate it into your flow.

// Description
// Use Twilio Sync to create, read, update, delete peristent data

exports.handler = function (context, event, callback) {
  // Make sure under Functions Global Config tab:
  // "Add my Twilio Credentials (ACCOUNT_SID) and (AUTH_TOKEN) to ENV" is CHECKED
  const client = context.getTwilioClient();

  // View Sync Services - https://www.twilio.com/console/sync/services
  // Set to a specific Sync Service SID
  // Set to your own sync document name to create, I use dynamicMsg

  const syncServiceSid = 'IS.....';
  const syncDocumentName = 'dynamicMsg';

  // Pass in Function to Run via URL query parameter
  // Example: https:/x.x.x.x/<path>?Function=createSyncDocument
  const functionToRun = event.Function || '';

  function createSyncDocument() {
    client.sync
      .services(syncServiceSid)
      .documents.create({
        data: {
          msg: 'Sorry we are closed.',
        },
        uniqueName: syncDocumentName,
      })
      .then((document) => {
        console.log(JSON.stringify(document.sid));
        return callback(null, 'success');
      })
      .catch((error) => {
        console.log(error);
        return callback(error);
      });
  }

  function readSyncDocument() {
    client.sync
      .services(syncServiceSid)
      .documents(syncDocumentName)
      .fetch()
      .then((document) => {
        console.log(JSON.stringify(document.data));
        return callback(null, document.data);
      })
      .catch((error) => {
        console.log(error);
        return callback(error);
      });
  }

  function updateSyncDocument() {
    client.sync
      .services(syncServiceSid)
      .documents(syncDocumentName)
      .update({
        data: {
          msg: 'We are open.',
        },
      })
      .then((document) => {
        console.log(`Documented Updated, Document SID: ${document.sid}`);
        return callback(
          null,
          `Documented Updated, Document SID: ${document.sid}`
        );
      })
      .catch((error) => {
        console.log(error);
        return callback(error);
      });
  }

  function deleteSyncDocument() {
    client.sync
      .services(syncServiceSid)
      .documents(syncDocumentName)
      .fetch()
      .then((document) => {
        client.sync.services(syncServiceSid).documents(document.sid).remove();
        return callback(null, `Document ${document.sid} Deleted`);
      })
      .catch((error) => {
        console.log(error);
        return callback(error);
      });
  }

  // Test run function via passed in parameter
  switch (functionToRun) {
    case 'createSyncDocument':
      {
        createSyncDocument();
      }
      break;
    case 'readSyncDocument':
      {
        readSyncDocument();
      }
      break;
    case 'updateSyncDocument':
      {
        updateSyncDocument();
      }
      break;
    case 'deleteSyncDocument':
      {
        deleteSyncDocument();
      }
      break;
    default:
      console.log('Please pass in the function name to execute');
      console.log('Example: https:/x.x.x.x/<path>?Function=createSyncDocument');
      return callback(
        'missing URL query parameter - Example: https:/x.x.x.x?Function=createSyncDocument'
      );
  }
};
ページを評価:

ヘルプが必要ですか?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio's Community Forums or browsing the Twilio tag on Stack Overflow.

        
        
        

        フィードバックくださりありがとうございます!

        We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

        Sending your feedback...
        🎉 Thank you for your feedback!
        Something went wrong. Please try again.

        Thanks for your feedback!

        Refer us and get $10 in 3 simple steps!

        ステップ1

        Get link

        Get a free personal referral link here

        ステップ2:

        Give $10

        Your user signs up and upgrade using link

        ステップ3

        Get $10

        1,250 free SMSes
        OR 1,000 free voice mins
        OR 12,000 chats
        OR more