質問: Salesforceプラットフォームを使った開発を行っていて、 問題に行き詰まっています。 やりたい事は、 外部システムA から JSON形式 かつ POST でデータを受け取り、 受け取ったデータに基いた計算結果を JSON にまとめて返すRESTプログラムを作ることですが、 以下2点の問題で行き詰まっています。 【問題1】**アクセストークンを取りベく以下のリクエストを送りますが、「400 BAD REQUEST」が帰ってきて、アクセストークンが取れません。** ``` 送信先 : https://cs6.salesforce.com/services/oauth2/token 送信ヘッダ username : **** (ログイン名) password : **** (ログインパスワード) client_id : 事前に設定したOAuthのコンシューマ鍵 client_secret : コンシューマの秘密 grant_type : password ``` ``` 返ってくる BAD REQUEST {"error": "unsupported_grant_type" "error_description": "grant type not supported"} ``` 尚、ログイン名、ログインパスワード、OAuthコンシューマ鍵、コンシューマの秘密は何度となく見返しており、入力値に間違いはないと思います。。。 【問題2】**問題1発生前は普通に access_token(アクセストークン)が返ってきていたのですが、それに基づいてRESTプログラムを呼び出す為にPOSTリクエストを送るも、「INVALID ID」系のエラーが帰ってきてPOSTが呼び出されない問題です。 (むしろこちらがお聞きしたい問題)** やりたい事とは異なりますが、大まかに以下の様なコードを書いています。 ``` @RestResource(urlMapping='/myRest/*') global with sharing class myRestClass { @HttpPost global static String doPost(String RequestJSON) { System.debug(RequestJSON); return 'POSTがコールされました'; } } ``` 上記のプログラムに対して、 ``` 送信先 : https://cs6.salesforce.com/services/apexrest/myRest 送信ヘッダ Authorization : OAuth [事前に取得した access_token] ``` 以上のPOSTデータを送った際にdoPostメソッドが呼び出されないのが行き詰まっている問題です。 ・doPost を呼び出す方法 ・併せて引数も doPost に渡す方法 を教えて頂きたく。。 以上を、初心者質問ですいませんが、 ご存知の方、何卒教えてください。。
回答: 自己解決しました。 【問題1】については、ボディにログイン情報などを入れなければならない所を、ヘッダーに入れていたためエラーが帰ってきていた感じです。 【問題2】についても、 渡すJSONのキー名とインナークラスの変数名が合っているか、 ヘッダー情報が正しいか など、見なおしてPOSTリクエストを送ったら正常に動作してくれました。 自己解決しましたので、この件はクローズにさせて頂きます。 ありがとうございました。