跳到主要内容
未找到任何项目。
dropboxsign 徽标
为什么选择 Dropbox Sign?
展开或折叠手风琴

您可以做什么

在线签署文档
创建电子签名
选择或创建模板
填写和签署 PDF
完成线上合同
文档管理
探索功能
向右箭头图标

用例

销售与业务拓展
人力资源
初创公司
金融科技
房地产
按需服务
产品
展开或折叠手风琴
Dropbox 图标
Sign
实现轻松发送和签字
Dropbox 图标
Sign API
将电子签名集成到您的工作流程中
dropbox fax 图标
Fax
无需传真机便能发送传真
dropbox 集成图标
集成
无缝集成助力您轻松工作
资源
展开或折叠手风琴
博客
工作流程专业知识和产品新闻
客户案例
讲述取得实际成果的真实故事
帮助中心
关于我们产品的深入指南
资源库
报告、视频和信息表
开发人员
定价
展开或折叠手风琴
Dropbox Sign 定价
找到适合您的套餐
Dropbox Sign API 定价
讲述取得实际成果的真实故事
与销售人员联系
注册
联系销售人员
登录
展开或折叠手风琴
Dropbox Sign
Dropbox Forms
Dropbox Fax
免费试用版
博客
/
开发人员

Getting Started with Dropbox Sign Embedded Signing with Ruby on Rails

by 
Freddy Rangel
July 9, 2015
4
分钟阅读时间
工具提示图标

外观全新但功能同样出色的产品!HelloSign 现为 Dropbox Sign。

关闭图标


Dropbox Sign provides the most robust and developer friendly API for signing legally binding documents in the browser. One of the most useful features is the ability to easily embed documents directly in your web app. Instead of asking your users to leave your website to sign a document, you can have them do it easily right in your app. It's pretty easy to get started with just a few lines of code.

‍

Let's walk through a simple example of embedding a document for signing on your application.

‍

This example is assuming your app is a Rails app, but if you're using another framework like Sinatra it works roughly the same way. First, if you haven't already done so, create a free Dropbox Sign account. Once you finish signing up, retrieve your API key from the Settings page under the API tab. You'll need this in a bit.

‍

Next, you'll need to create a Dropbox Sign test app. In order to create a test app, your app will need to expose an endpoint to receive Dropbox Sign callbacks. You can find the Callback Documentation here, but to get things moving along we just need a few lines of code.

‍

Let’s first set up a route to our new callback endpoint:

‍

# config/routes.rb Rails.application.routes.draw do  post '/signatures/callbacks',    to: 'signatures#callbacks' end

‍

Now let's add the endpoint controller action itself. Dropbox Sign requires the endpoint to always respond with status 200 and with 'Hello API Event Received' in the response body, regardless of whether the callback has been handled correctly.

‍

# app/controllers/signatures_controller.rb class SignaturesController < ApplicationController  skip_before_action :verify_authenticity_token, only: [:callbacks]  def callbacks    render json: 'Hello API Event Received', status: 200  end end

‍

We’ll want to test this endpoint to make sure it's set up correctly. Sadly, since our endpoint is only accessible from our local machine, we need some help exposing this endpoint to the world.

‍

Enter ngrok. It's a free and easy to use tunneling service that works great for exposing your local server to the internet. If you're on a Mac it's really easy to install with Homebrew: brew install ngrok

‍

Now let's expose the server.

‍

Let's fire up the server first: rails s

‍

And in a separate tab, let's fire up ngrok: ngrok 3000

‍

Here we're telling ngrok to watch port and tunnel port 3000, which is where our rails server is listening on. Notice that when you run ngrok it will give you a forwarding url which is where the outside world can reach your local server. ngrok might change this url randomly in the future so I recommend setting up a custom subdomain. In order to do that you'll need an ngrok account but you can easily sign up with your github account here: ngrok signup. Once you sign up, you'll get an auth token. You only need it once.

‍

Then you can run the following:

‍

ngrok -authtoken=coolAuthTokenDude -subdomain=mycoolapp 3000

‍

Now let's take our cool new ngrok url and use that for our callback url that our Dropbox Sign API app can use. Make sure to click the “TEST” button to make sure everything is set up correctly. Once you create the application, make sure to retrieve the app's client id. We're going to use it shortly. Now that we’ve created our Dropbox Sign app, we can get ready to make an embedded signature request. Unless doing raw HTTP calls to an API happens to be your thing (or whatever kids are doing these days), I suggest reaching for the handy Dropbox Sign Ruby SDK.

‍

Let's add it to the Gemfile:

‍

gem 'hellosign-ruby-sdk'

‍

And let's not forget to run: bundle install

‍

Alright, now we need to do some configuration using your API key and test app client id. If you're working on a Rails app, you can easily do this with an initializer.

‍

# config/initializers/hello_sign.rb require 'hello_sign' HelloSign.configure do |config|  #

‍

You might want to put all these keys in environment variables or you can YOLO it.

‍

config.api_key = 'api_key'  config.client_id = 'client_id' end

‍

Now let's create our first embedded signature request. The implementation details are going to be different from app to app, but here we're going to go with something simple and set up a form where we submit a signer's name and email.

‍

Then, we're going to immediately open up that document inside the app.

‍

Let's start with updating our routes:

‍

# config/routes.rb Rails.application.routes.draw do  resources :signatures, only: [:new, :create] do    collection do      post 'callbacks'    end  end end

‍

Next we're going to create the form. Let's add the new embedded request form controller action: # app/controllers/signatures_controller.rb def new end

‍

Now we need the view:

‍

# app/views/signatures/new.html.erb <%= form_tag signatures_path, method: :post do %>  <%= label_tag 'Name' %>  <%= text_field_tag :name %>  <%= label_tag 'Email' %>  <%= text_field_tag :email %>  <%= submit_tag 'Create Embedded Signature Request' %> <% end %>

‍

Now let's add the create action:

‍

# app/controllers/signatures_controller.rb def create  embedded_request = create_embedded_request(name: params[:name], email: params[:email])  @sign_url = get_sign_url(embedded_request)  render :embedded_signature end private def create_embedded_request(opts = {})  HelloSign.create_embedded_signature_request(    test_mode: 1, #Set this to 1 for 'true'. 'false' is 0    client_id: 'your_client_id',    subject: 'My first embedded signature request',    message: 'Awesome, right?',    signers: [      {        email_address: opts[:email],        name: opts[:name]      }    ],    files: ['offer_letter.pdf']  ) end def get_sign_url(embedded_request)  sign_id = get_first_signature_id(embedded_request)  HelloSign.get_embedded_sign_url(signature_id: sign_id).sign_url end def get_first_signature_id(embedded_request)  embedded_request.signatures[0].signature_id end

‍

Here we're doing two things:

‍

  1. We are sending an embedded signature request to Dropbox Sign.
  2. Once we have created a request, we are grabbing the “signature_id” for the first signer and using that to retrieve the sign_url, which we're going to use in the view.

‍

Speaking of which, here it is: In the view, we’re pulling a script from a CDN that will help us embed our document in our app. This gives us a Dropbox Sign object in the browser which we will initialize and open our document with the sign_url we passed in from the controller.

‍

That's it! The entire setup for embedded signing in Rails took me about 20 minutes to set up – let me know if you can do it faster! For more information be sure to check out the documentation here: Dropbox Sign API Documentation.

保持更新

完成!请检查您的收件箱。

Thank you!
Thank you for subscribing!

Lorem ipsum

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Lorem ipsum
向右箭头图标
关闭图标

Up next:

手写签名的特写插图,代表现代数字签名解决方案。
开发人员
15
分钟阅读时间

将 Dropbox Sign 与 Ruby on Rails 集成:分步教程

手写签名的特写插图,代表现代数字签名解决方案。
开发人员
15
分钟阅读时间

Dropbox Sign vs. SignNow for developers

模板

咨询协议模板

产品
Dropbox SignDropbox Sign APIDropbox Fax集成
为什么选择 Dropbox Sign
电子签名签署文档签署和填写 PDF在线合同创建电子签名签名编辑器签署 Word 文档
支持
帮助中心与销售人员联系联系支持人员管理 Cookie开始使用:Dropbox Sign开始使用:Dropbox Sign API
资源
博客客户案例资源中心合法性指南信任中心
合作伙伴
战略合作伙伴合作伙伴查找工具
公司
招贤纳士条款隐私
Facebook 图标YouTube 图标

接受的付款方式

Mastercard 徽标Visa 徽标American Express 徽标Discover 徽标
CPA 合规标记HIPAA 合规标记Sky High Enterprise Ready 标记ISO 9001 认证标志

在美国、欧盟、英国和世界许多其他地区,Dropbox Sign 电子签名均具有法律约束力。
如需了解更多信息,请查看我们的条款和条件以及隐私政策