GithubHelp home page GithubHelp logo

docusign / code-examples-ruby Goto Github PK

View Code? Open in Web Editor NEW
26.0 12.0 19.0 2.06 MB

Docusign Ruby on Rails code examples and launcher

Home Page: https://developers.docusign.com/

License: MIT License

Ruby 72.64% JavaScript 2.32% CSS 0.68% HTML 24.36%
docusign rooms-api docusign-api ruby jwt esignature click-api monitor-api webforms-api

code-examples-ruby's Introduction

Ruby Launcher Code Examples

PLEASE! Share your feedback in a two-question survey.

GitHub repo: code-examples-ruby

This GitHub repo includes code examples for the Web Forms API, Maestro API, Docusign Admin API, Click API, eSignature REST API, Monitor API, and Rooms API.

Introduction

This repo is a Ruby on Rails application that supports the following authentication workflows:

  • Authentication with Docusign via Authorization Code Grant. When the token expires, the user is asked to re-authenticate. The refresh token is not used.

  • Authentication with Docusign via JSON Web Token (JWT) Grant. When the token expires, it updates automatically.

eSignature API

For more information about the scopes used for obtaining authorization to use the eSignature API, see Required scopes.

For a list of code examples that use the eSignature API, see the How-to guides overview on the Docusign Developer Center.

Rooms API

Note: To use the Rooms API, you must also create your Rooms developer account. Examples 4 and 6 require that you have the Docusign Forms feature enabled in your Rooms for Real Estate account. For more information about the scopes used for obtaining authorization to use the Rooms API, see Required scopes.

For a list of code examples that use the Rooms API, see the How-to guides overview on the Docusign Developer Center.

Click API

For more information about the scopes used for obtaining authorization to use the Click API, see Required scopes

For a list of code examples that use the Click API, see the How-to guides overview on the Docusign Developer Center.

Monitor API

Note: To use the Monitor API, you must also enable Docusign Monitor for your organization.

For information about the scopes used for obtaining authorization to use the Monitor API, see the scopes section.

For a list of code examples that use the Monitor API, see the How-to guides overview on the Docusign Developer Center.

Admin API

Note: To use the Admin API, you must create an organization in your Docusign developer account. Also, to run the Docusign CLM code example, CLM must be enabled for your organization.

For information about the scopes used for obtaining authorization to use the Admin API, see the scopes section.

For a list of code examples that use the Admin API, see the How-to guides overview on the Docusign Developer Center.

Installation

Prerequisites

Note: If you downloaded this code using Quickstart from the Docusign Developer Center, skip items 1 and 2 as they were automatically performed for you.

  1. A free Docusign developer account; create one if you don't already have one.

  2. A Docusign app and integration key that is configured for authentication to use either Authorization Code Grant or JWT Grant.

    This video demonstrates how to obtain an integration key.

    To use Authorization Code Grant, you will need an integration key and a secret key. See Installation steps for details.

    To use JWT Grant, you will need an integration key, an RSA key pair, and the User ID GUID of the impersonated user. See Installation steps for JWT Grant authentication for details.

    For both authentication flows:

    If you use this launcher on your own workstation, the integration key must include a redirect URI of

    http://localhost:3000/auth/docusign/callback

    If you host this launcher on a remote web server, set your redirect URI as

    {base_url}/auth/docusign/callback

    where {base_url} is the URL for the web app.

  3. Ruby version 2.7.2 or later

    1. Update the Gemfile to use later versions of Ruby.
    2. Windows x64 only:
      1. Ensure that your Ruby folder is appended with -x64, e.g. Ruby27-x64
      2. Install Curl for Ruby: Download libcurl.dll Save libcurl-x64.dll as libcurl.dll Place libcurl.dll in your Ruby folder, e.g. C:\Ruby27-x64\bin

Installation steps

Note: If you downloaded this code using Quickstart from the Docusign Developer Center, skip step 4 as it was automatically performed for you.

  1. Extract the Quickstart ZIP file, or download or clone the code-examples-ruby repository.
  2. In your command-line environment, switch to the folder: cd <Quickstart folder> or cd code-examples-ruby
  3. To install dependencies, run: bundler install
  4. To configure the launcher for Authorization Code Grant authentication, create a copy of the file config/appsettings.example.yml and save the copy as config/appsettings.yml.
    1. Add your integration key. On the Apps and Keys page, under Apps and Integration Keys, choose the app to use, then select Actions > Edit. Under General Info, copy the Integration Key GUID and save it in appsettings.yml as your integration_key.
    2. Generate a secret key, if you don’t already have one. Under Authentication, select + ADD SECRET KEY. Copy the secret key and save it in appsettings.yml as your integration_secret.
    3. Add the launcher’s redirect URI. Under Additional settings, select + ADD URI, and set a redirect URI of http://localhost:3000/auth/docusign/callback. Select SAVE.
    4. Set a name and email address for the signer. In appsettings.yml, save an email address as signer_email and a name as signer_name. Note: Protect your personal information. Please make sure that appsettings.yml will not be stored in your source code repository.
  5. Run the launcher: rails s
  6. Open a browser to http://localhost:3000

Installation steps for JWT Grant authentication

Note: If you downloaded this code using Quickstart from the Docusign Developer Center, skip step 4 as it was automatically performed for you. Also, in order to select JSON Web Token authentication in the launcher, in config/appsettings.yml, change quickstart to false.

  1. Extract the Quickstart ZIP file or download or clone the code-examples-ruby repository.
  2. In your command-line environment, switch to the folder: cd <Quickstart folder> or cd code-examples-ruby
  3. Install the dependencies: bundler install
  4. To configure the launcher for JWT Grant authentication, create a copy of the file config/appsettings.example.yml and save the copy as config/appsettings.yml.
    1. Add your User ID. On the Apps and Keys page, under My Account Information, copy the User ID GUID and save it in appsettings.yml as your impersonated_user_guid.
    2. Add your integration key. On the Apps and Keys page, under Apps and Integration Keys, choose the app to use, then select Actions > Edit. Under General Info, copy the Integration Key GUID and save it in appsettings.yml as your jwt_integration_key.
    3. Generate an RSA key pair, if you don’t already have one. Under Authentication, select + GENERATE RSA. Copy the private key and save it in a new file named config/docusign_private_key.txt.
    4. Add the launcher’s redirect URI. Under Additional settings, select + ADD URI, and set a redirect URI of http://localhost:3000/auth/docusign/callback. Select SAVE.
    5. Set a name and email address for the signer. In appsettings.yml, save an email address as signer_email and a name as signer_name. Note: Protect your personal information. Please make sure that appsettings.yml will not be stored in your source code repository.
  5. Run the launcher: rails s
  6. Open a browser to http://localhost:3000
  7. If it is your first time using the app, grant consent by selecting Accept. On the black navigation bar, select Logout, then Login.
  8. From the picklist, select JSON Web Token (JWT) grant > Authenticate with Docusign.
  9. Select your desired code example.

JWT grant remote signing and Authorization Code Grant embedded signing projects

See Docusign Quickstart overview on the Docusign Developer Center for more information on how to run the JWT grant remote signing project and the Authorization Code Grant embedded signing project.

Troubleshooting Windows SSL issue

When using the Ruby launcher on a Windows machine you may get the following error:

SSL peer certificate or SSH remote key was not OK

This error occurs because you’re attempting to use the Ruby launcher with a self-signed certificate or without SSL/HTTP security. The API calls from Ruby SDKs are using a built-in Curl tool that is enforcing the SSL requirement. You can disable this security check to run the launcher in an insecure manner on your developer machine.

- It is highly recommended that you don’t disable this security check
- in a production environment or in your integration.
- This method is offered here solely as a means to enable you to
- develop quickly by lowering the security bar on your local machine.

Find the root folder for your Ruby gems (in this case, a 64-bit version of Ruby 2.7.0):

C:\Ruby27-x64\lib\ruby\gems\2.7.0\gems\

Find the relevant Docusign Ruby SDK you are using. The name always starts with “docusign”; for instance, Docusign Click SDK version 1.0.0:

C:\Ruby27-x64\lib\ruby\gems\2.7.0\gems\docusign_click-1.0.0\lib\docusign_click

Find the configuration.rb file in that folder. Modify the following two lines in the configuration.rb file, replacing true with false:

  @verify_ssl = true
  @verify_ssl_host = true

Once this is complete, you can run your Ruby on Rails application again and you should be able to make API calls on your localhost.

Troubleshooting macOS SSL issue

When using the Ruby launcher on OSX you may get the following error:

Faraday::SSLError (SSL_connect returned=1 errno=0 state=error: certificate verify failed (self signed certificate in certificate chain))

Please update SSL certificates if rvm is your version manager. Or check other steps for different scenarios.

$ rvm osx-ssl-certs status all
$ rvm osx-ssl-certs update all

Payments code example

To use the payments code example, create a test payment gateway on the Payments page in your developer account. See Configure a payment gateway for details.

Once you've created a payment gateway, save the Gateway Account ID GUID to appsettings.yml.

License and additional information

License

This repository uses the MIT License. See LICENSE for details.

Pull Requests

Pull requests are welcomed. Pull requests will only be considered if their content uses the MIT License.

code-examples-ruby's People

Contributors

aaronwds avatar an-tk avatar annahileta avatar connorl-docusign avatar dependabot[bot] avatar esambo avatar inbargazit avatar karissarjacobsen avatar larryklugerds avatar matthewlusher avatar mattkingds avatar mattlusher avatar meihds avatar paigesrossi avatar raileendr avatar rajrele avatar romanbachalosigmasoftware avatar rustamabdul avatar xjlin0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

code-examples-ruby's Issues

Auth URL not available /auth/docusign

Hello, I think this gem is causing a problem.

gem 'omniauth-rails_csrf_protection'

It restricts the OmniAuth.allowed_request_methods to post which doesn't work because the example does a GET redirect to /auth/docusign.

I think this gem is present because of the CVE.

For folks who find this issue because they're stuck, if you're only working on an example, then you can remove it. If you need to go to production you have to have form that can click a 'login' button and POST to the auth url.

invalid_grant: expired_client_token Auth Grant Flow error

On running the project after setting the required values :
client_id => Integrator_Key (Same value used for client_secret)

On trying to login to my demo docusign account through the application using authentication grant flow,
I get:

OAuth2::Error
invalid_grant: expired_client_token {"error":"invalid_grant","error_description":"expired_client_token"}

How the omniauth authentication will work in API Version ?

I have cloned the repository on local and able to create template successfully from my local to DocuSign account.
My aim is to provide an endpoint to Podio system where they POST the document by URI which I will be then forwarding to DocuSign to create a Template and return the created template_id in json response to source. They will utilize the template with Docmosis.

  • I am wondering how can I skip the first authentication step and do the authentication with DoucSign account via API calls as Web Service. OR if I can do that authentication from the UI at once only. Is there a mechanism that will fetch the and update the auth token automatically without any user interaction?

  • Moreover, I am not sure what is difference between a DocuSign developer account and regular account, Are the templates created in both are classified as belongs to different users?

App fails to start due to nokogiri version issues in Gemfile.lock

When attempting to start the app with bundle exec rails, I get:

You have already activated nokogiri 1.11.4, but your Gemfile requires nokogiri 1.11.3. Prepending `bundle exec` to your command may solve this. (Gem::LoadError)

It appears that both nokogiri 1.11.3 and 1.11.4 are listed for my platform (linux). Removing the reference to 1.11.3 in Gemfile.lock fixes the issue

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.