Smartsheet APIにOAuth認証でつないでPostmanからデータ取得する方法
本記事はCDataが提供する「CData Software Blog」に掲載された「Smartsheet APIにOAuth認証でつないでPostmanからデータ取得する方法」を再編集したものです。
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
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 |
レスポンスが返ってきました。
sheet idをURIに入れてシートの中身も取ることができました。
CDataでは、SmartsheetのAPIに通常のExcel、BIツール、スプレッドシート、ETLツールからSQLでアクセスできるコネクタ「CData Drivers for Smartsheet」を提供しています。Smartsheetと既存のツール、アプリケーションの連携、Smartsheetデータの分析などには是非、CDataの連携コネクタをお試しください。