メニュー

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

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

  // Pass in Function to Run via URL query parameter
  // Example: https:/x.x.x.x/<path>?Function=createSyncDocument
  let 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'
      );
  }
};
ページを評価:

ヘルプが必要ですか?

誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。

        
        
        

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

        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