0

リモート アクセスで Foce.com REST API を使用できるように、OAuth2.0 ユーザー エージェント認証フローを使用してアクセス トークンと更新トークンを取得しています。問題は、正常に承認してトークンを受け取ることができることですが、クライアント アプリケーションを承認した直後にそれらのトークンを使用しているときに、java.net.ConnectException: 接続拒否エラーが発生します。

私がやっている次の手順

  1. https://login.salesforce.com/services/oauth2/authorize?response_type=token&client_id= {my_client_id}&redirect_uri={my_redirect_uri}&state=myStateにリダイレクトしてい ます

  2. Salesforce でアプリを承認し、redirect_uri のハッシュでアクセス トークンとリフレッシュ トークンを
    {my_redirect_uri}#access_token={my_access_token}&refresh_token={my_refresh_token}&instance_url=https%3A%2F%2Fap1.salesforce.com&id= として受け取ります。 https%3A%2F%2Flogin.salesforce.com%2Fid%2F00D90000000gscOEAQ%2F00590000000sdtJAAQ&issued_at=1351151192815&signature={my_signature_value}&state=myState &scope=id+api+refresh_token

  3. ここで、要求ヘッダーを使用してhttps://ap1.salesforce.com/services/data/v20.0/sobjects/Lead/にPOST を実行することで、同じアクセス トークンを使用して REST API を使用しています :
    Content-Type: application/ json
    認証: OAuth {my_access_token}

CURL を使用する場合はアクセス トークンをエスケープする必要があるため、投稿の送信中にアクセス トークンをエスケープしていません。HttpClient Java API も使用する場合に必要ですか?

私が得ている応答は、「java.net.ConnectException: 接続拒否エラー」です。誰かが私が間違っていること、またはそれをさらにデバッグする方法を教えてもらえますか?? Salesforce 側で何が起こっているかを確認する方法はありますか? 一部のログは ?

OAuth Refresh Token Process も試してみると、まったく同じ接続拒否エラーが発生します。

4

1 に答える 1

0

お騒がせしてすみません。

リフレッシュトークン手順を使用して顧客の秘密を検証しているときに、「期限切れのアクセス/リフレッシュトークン」で「invalid_grant」を取得していましたが、送信が保護されていたため、Javaで取得していたのは「接続が拒否されました」だけで、詳細なエラーメッセージはありませんでした。

ここで説明されているようにCharlesでSSLプロキシを設定することで、詳細なエラーを知ることができました。その後、以前は読み取れなかったhttps://ap1.salesforce.comに送信されたリクエスト パラメータとレスポンスを確認できました。

于 2012-10-30T18:13:41.450 に答える