【Salesforce】Dropbox APIを使用してApexクラスからDropboxを操作する(前編)
Dropbox APIを使用して、ApexクラスからDropboxを色々操作してみたのでメモします。
今回は、Dropboxのアカウントは無料のものを使用します。
準備
1.Dropbox API利用者登録
まず下記リンク先でDropbox API利用者登録をします。
https://www.dropbox.com/developers/apps
方法は下記リンク参照。 qiita.com
ここで生成したアクセストークンは後で使用します。
2.リモートサイトの登録
次にSalsforce側でDropbox APIのURLを登録します。
Salesforceにログインし、下記にアクセスしてください。
設定>セキュリティのコントロール>リモートサイトの設定>新規リモートサイト
リモートサイト名には適当な値を入力してください。
今回は、「ファイルの作成」「ファイル名の取得」「ファイルの中身を取得」を行うので、下記のURLをそれぞれ登録します。
//ファイル作成・ファイル名取得に使用 https://api.dropboxapi.com //ファイルの中身取得に使用 https://content.dropboxapi.com
Dropbox APIの公式サイトです。全編英語です。 www.dropbox.com
日本語でまとめている方がいたので、こちらの方が見やすいです。
接続
1.ファイル作成
準備が整ったので、実際に接続していきます。 はじめにファイル作成のサンプルを作ってみました。
フィールド変数にアクセストークン用の変数を用意して代入。本当はカスタム設定とかに記載する方が良いんですが今回は省略。 kayakuguri.github.io maroyaka.hateblo.jp
今回はファイル作成なので、ファイル作成用のURLをエンドポイントとして設定。 メソッドはポスト。
アクセストークンをセットし、ファイルの種類と配置先を指定。
これでDropbox内のSalesforce Documents
フォルダにTest.txt
が作成されます。
public class DropboxConnectController { //アクセストークン private static String acToken = 'Your_Access_Token'; // ファイル作成 public void createFileInDropbox(){ HttpRequest req = new HttpRequest(); req.setEndpoint('https://content.dropboxapi.com/2/files/upload'); req.setMethod('POST'); // アクセストークンをセット req.setHeader('Authorization', 'Bearer ' + acToken); // ファイルの種類 req.setHeader('Content-Type', 'text/plain; charset=dropbox-cors-hack'); // ファイルの格納先 req.setHeader('Dropbox-API-Arg','{ "path":"/Salesforce Documents/Test.txt" }'); Http http = new Http(); HTTPResponse res = http.send(req); System.debug('ステータスコード:'+res.getStatusCode()); System.debug(res.getBody()); } }