Memos About Salesforce

Salesforceにハマってたこと!

Salesforce Rest API コンシューマ鍵とコンシューマの秘密を用いたAPIコール

こんにちは、管理人の@Salesforce.Zです。

Salesforceが各種なAPIを提供している

今回は、REST APIを使い、組織の情報を取得したり、オブジェクトの作成、更新、削除等の操作を行ってみたいと思います。

プログラミング言語から直接コールする方法とUIツールでコールする方法などがあります。

それぞれの方法を共有します。

特に認証の仕組みなどは、HTTPのリクエストとレスポンスをそのままみれるこの方法が、仕組みを理解して、複雑なアプリケーションを作成していくサンプルとしても良いと思います。

全体の流れとしては下記になります。(流れをしっかり理解した上に進めば、理解しやすい)

  1. 接続アプリケーション作成

  2. 接続アプリケーションで発行されたコンシューマ鍵とコンシューマの秘密を使い、POSTメソッドでアクセストークンを取得する

  3. アクセストークンでREST APIを用いてデータベースを操作する(作成、閲覧、更新、削除)

操作時によくあるエラー

Invalid grant_type

unsupported grant_type

エラーに対して確認すべきところ

・データベース操作を行うため、アクセストークンを取得するURL

 本番:https://login.salesforce.com/services/oauth2/token

 SandBox:https://test.salesforce.com/services/oauth2/token

インスタンス名を使わないこと(ap0、cs6など)

・対象ユーザのプロファイルではIPアドレス制限かけている

・セキュリティートークンが必要かも

・ユーザ名とパスワードが違っている

・該当ユーザがロックされてしまった

ちなみに私がインスタンスのところでやられてしまったです。数日後にパスワード変更されて、知らないうちに数回試して、ユーザにロックをかけられてた

では、いきましょう!

目次

接続アプリケーション作成

  • アクセス

・Classicの場合:「設定」⇒「ビルド」⇒「作成」⇒「アプリケーション」に行き、セクション「接続アプリケーション」で「新規」ボタンを押します。

・lightingの場合:「設定」⇒「アプリケーション」に行き、セクション「アプリケーションマネージ」で右上の「新規接続アプリケーション」ボタンを押します。

f:id:jude2016:20190110164029j:plain
接続アプリケーション作成のアクセス

  • 作成

下記の図のように作成し、[保存] をクリックすると、[コンシューマ鍵] が作成されて表示され、[コンシューマの秘密] が作成されます (リンクをクリックして表示します)。

f:id:jude2016:20190110174949p:plain
接続アプリケーションの作成例

  • 作成した接続アプリケーション

作成した接続アプリケーションの詳細画面では、コンシューマ鍵とコンシューマの秘密が与えられる、これらをメモして、RestAPIをコールする時に使うアクセストークンを取得する時に設定する必要があります。

f:id:jude2016:20190110175652j:plain
作成した接続アプリケーション

アクセストークンを取得する

アクセストークンを取得するにはコンシューマ鍵とコンシューマの秘密が必要です。

確認方法はアプリケーションマネージからできる。

コードでの操作

PythonJavaなど言語を使用するもあります。ここでSalesforceの匿名コンソールを用いたコールする方法でいきます。

UIツールでの操作

使用ツール:Chrome 拡張機能であるRestlet Client

f:id:jude2016:20190110184334p:plain
Chrome 拡張機能のUIツールのエラー例

上記の例では、インスタンスの部分がtestになり、loginに書き換えるとアクセストークンを取得できる

修正後に

f:id:jude2016:20190110184724p:plain
URL修正後の結果

返したBODYにあるaccess_tokenの値をデータベース操作に必要なものメモしてください

参考サイト

OAuth 2.0 ユーザ名パスワードフロー