Smartsheet API にOAuth 認証でつないでPostman からデータ取得する方法

Smartsheet にOAuth で接続

Smartsheet(https://jp.smartsheet.com/welcome-customers-home)は、スプレッドシート的なデータをベースとしたノーコードアプリケーションプラットフォームで、プロジェクト管理やワークフロー自動化に強みがあるツールです。

API があるので、とりまPostman から触ってみました(わが社は「とりまPostman」がもはや常識)。

一つサンプルのシートを作りました。

開発者登録へ

SmartSheet のAPI を使うための準備

それでは、Smartsheet のAPI ドキュメントから見ていきます。

API ドキュメント:https://smartsheet.redoc.ly/#section/Introduction

Raw Access Token 方式 とOAuth 2.0 方式

Smartsheet API へのアクセスには、Raw Access Token 方式とOAuth 2.0 方式があるとのことです。まずさわってみるということであれば、Raw Access Token 方式で良いそうですが、実利用にはOAuth 2.0 が推奨されているようです。

Access Token は、画面の左下のアカウントを開き、[個人用の設定]->[API アクセス]->[新しいアクセストークンの生成]で生成可能です。

本記事では実利用向けのOAuth 2.0 でのアクセスを説明していきます。

開発者アカウントの取得

OAuth でのAPI アクセスには、開発者アカウントを取得して開発者アプリを作成する必要があります。

まずは、Smartsheet の左下のアカウントから[開発者ツール] をクリックします。

開発者ツール

開発者画面が開きますので、[Register] のボタンをクリックします。

開発者サンドボックス登録

Developer Sandbox Account Registration 画面が開くので、メールアドレスを登録して、[Register Developer Account]ボタンをクリックします。

メール

これで登録ができている旨のメールが来ているはずです。

登録

メールボックスに以下のようなメールが来ます。リンクをクリックしてアクティブ化。

開発者登録

開発者プロファイルとして、名前とメールアドレスを登録。

トークン取得

開発者アプリケーションの作成

OAuth でのAPI アクセスにはAPI アクセス用の開発者アプリを作成する必要があります。[新しいアプリの作成]ボタンをクリックします。

アプリ作成

開発者アプリの設定画面です。以下のように登録をして、保存ボタンをクリックします。

アプリ名 (任意)
アプリ説明 (任意)
アプリのURL API アクセスするアプリのURL 今回はデスクトップPostman からのアクセスなので適当な文字
アプリ連絡先/サポート 連絡先 今回は適当な文字
アプリリダイレクトURL http://localhost:33333 今回はデスクトップPostman からのアクセスなのでローカル

アプリ登録

これでアプリが開発でき、[アプリクライアントid]と[アプリシークレット] が取得できました。接続に使うので、キーを保存しておきます。

これでSmartsheet にAPI でアクセスする準備ができました。

キー取得

Postman からSmartsheet API に接続

では、Postman(https://www.postman.com/)を使ってSmartsheet にAPI 接続してみましょう。

Postman Desktop を使っています。

Authorization タブを開き、以下の通りに認証のための値を入れていきます。

Token Name (任意)
Grant type Authorization Code
Callback URL http://localhost:33333
Auth URL https://app.smartsheet.com/b/authorize
Access Token URL https://api.smartsheet.com/2.0/token
Client ID 先程取得したアプリクライアントid
Client Secret 先程取得したアプリシークレット
State READ_SHEETS
Client Authentication Send client credentials in body

Auth URL やAccess Token URL はドキュメントを参照:https://smartsheet.redoc.ly/#section/OAuth-Walkthrough

[State] は、API アクセスの権限なので、こちらの権限の種類からカンマで区切って使用できるアクセス権限を付けていきます:https://smartsheet.redoc.ly/#section/OAuth-Walkthrough/Access-Scopes

Postman での認証設定

Authentication の入力ができたら、下にスクロールして、[Get New Access Token]のオレンジ色のボタンをクリックします。

トークン取得ボタンクリック

ブラウザが開いて、Smartsheet にログインするとアプリからのSmartsheet へのアクセスリクエストを許可する画面が開きますので、許可ボタンをクリックします。

ブラウザ認証

これでOK です。[Proceed]ボタンを押します。

認証完了

トークンが撮れましたので、[Use Token]ボタンを押して、Postman でこれらのトークンでアクセスができるようにします。

トークン取得

Postman で、smartsheet のシート一覧を取得してみましょう。

Method GET
URI https://api.smartsheet.com/2.0/sheets
Content-Type application/json

Smartsheet sheet 一覧のクエリ

レスポンスが返ってきました。

smartsheet sheet のクエリ

sheet id をURI に入れてシートの中身も取ることができました。

結果

おまけ:CData Drivers for Smartsheet

CData では、Smartsheet のAPI に通常のExcel、BI ツール、スプレッドシート、ETL ツールからSQL でアクセスできるコネクタ「CData Drivers for Smartsheet」を提供しています。Smartsheet と既存のツール、アプリケーションの連携、Smartsheet データの分析などには是非、CData の連携コネクタをお試しください。

トライアル・お問い合わせ

関連コンテンツ