こんにちは。CData Software Japanリードエンジニアの杉本です。
CData Salesforce Driver は内部で SOAP APIを利用しているのですが、これらAPIを利用している方々がよく遭遇するエラーとして、「API_DISABLED_FOR_ORG」や「INVALID_LOGIN」があります。
今回はこのエラーについて、よくある原因および対処方法を解説したいと思います。
「API_DISABLED_FOR_ORG」と「INVALID_LOGIN」のエラーについて
基本的なエラーメッセージに関しては、以下のリファレンスを読み込んでおけば、ほとんど網羅できます。
その上で「API_DISABLED_FOR_ORG」についてですが、ヘルプからの抜粋にある通り、APIが利用できない環境に接続しようとした場合に発生する可能性があるエラーです。
API_DISABLED_FOR_ORG: API is not enabled for this Organization or Partner
ログインユーザ名とパスワードの情報が API アクセスで使用される場合、これらの情報が正しくても、誤った API 権限や組織の API 制限が原因でログインに失敗する可能性があります。
API アクセスがサポートされていない組織に接続しようとすると、「API_DISABLED_FOR_ORG」というエラーが発生します。組織の API アクセス権は、Salesforce のエディションの種類によって決まります。API アクセス権は、Enterprise Edition、Unlimited Edition、Performance Edition、Developer Edition の組織で使用できます。組織に API アクセス権があるのに「API_DISABLED_FOR_ORG」というエラーが発生する場合は、Salesforce サポートにお問い合わせください。
「INVALID_LOGIN」はもっとシンプルで、IDやPW・セキュリティトークンが間違っている場合に発生する可能性があるエラーです。
INVALID_LOGIN Invalid username, password, security token
さて、なぜ今回この2つのエラーを上げたのか? と言えば、「トライアル環境の取得方法が間違っていた」という理由が多くを占めるためなのです。
Salesforce APIが利用できるトライアル環境とは?
実はAPIが利用できない環境として、最も多く遭遇する例が以下のSalesforceトップページから取得した「無料トライアル」の環境であるためです。
意外な落とし穴ですよね。私も最初はひっかかりました。
https://www.salesforce.com/jp/
ここで取得した環境でも、セキュリティトークンは発行できるため、あたかもAPI接続ができるように感じられてしまうのですが、CData DriverなどのSOAPを使っているツールやサービスでアクセスしようとしても、以下のようなエラーになってしまいます。
また、登録時のIDとは別のforce.comアドレスが送られてきますが、元の登録に使ったメールアドレスを指定した場合には「INVLID_LOGIN」となってしまいます。これも多くの混乱を招いてしまう要因ですね。
それでは、どうすれば良いのか? 実は SalesforceではAPIの検証・開発を行うためにも利用可能な環境である Developer Edition というものが提供されています。
この環境を取得して、APIの検証環境として利用しましょう。
以下のURLからアクセスして、取得した環境がDeveloper Editionとなります。
https://developer.salesforce.com/signup
Developer Editionを取得してしまえば、後は通常のSalesforceと同様にログインして利用できます。なお、Developer Edition はレコード数などに制限があるので要注意です。
すでにDeveloper Editionを取得しているにも関わらず、「INVALID_LOGIN」が発生する場合は、単純にID・PW・セキュリティトークンの値が間違っていたという場合が多いです。
それ以外にもパスワードの有効期限やセキュリティトークンをリセットしていた可能性もあるので、改めて必要な値が正確かどうか確認してみてください。
セキュリティトークの取得方法
併せてセキュリティトークンの取得方法についても確認しておきましょう。
Lightningホーム(Salesforce Classic画面でも同じ)画面右上のユーザアイコンの「設定」をクリックします。
左側のメニューバーより「私のセキュリティトークンのリセット」を選択して、リセットボタンをクリックします。
登録したメールにセキュリティトークンが記載されたメールが届くので本トークン文字列をユーザID・パスワードと併せて控えておいてください。
あとは、CData Driverであれば、User・Password・Security Tokenの値を接続プロパティに設定すれば接続が完了します。
おわりに
今回の件は私自身も最初に引っかかったことがあり、またお客様からも良く問い合わせをいただくので記事にしてみました。
それ以外にも様々なAPIのエラーが存在すると思います。
CData Driver を使っていてこういったエラーが発生した場合はどうすればいいの? といった疑問・質問があれば、お気軽にテクニカルサポートまで問い合わせください。