1

我一直在尝试在我连接的应用程序上测试 OAuth 流程,但我得到以下行为:

  1. 授权应用程序:

    https://login.salesforce.com/services/oauth2/authorize?response_type=token&client_id=theclientid&redirect_uri=https%3A%2F%2Fmysite.com _

  2. 登录 Salesforce,点击“RemoteAccessAuthorizationPage”上的“允许”

  3. 页面重定向到 mysite.com。在 URL 中使用“access_token”,进行以下 cURL 调用

    curl -X GET https://na1.salesforce.com/services/data/v28.0/sobjects/Account -H 'Authorization: Bearer thetoken' -H 'X-PrettyPrint:1'

  4. 回复:

    { "message" : "会话过期或无效", "errorCode" : "INVALID_SESSION_ID" }

我还使用从 1 获得的令牌尝试了“OAuth Refresh Token Process”。但是这也失败了:

{ error_description:“过期的访问/刷新令牌”错误:“invalid_grant”}

我尝试将 %21 转换为 ! 在 URL 编码的 access_token 中,但这没有帮助。

谁能建议我做错了什么?

4

2 回答 2

1

想通了,cURL 调用格式不正确。我不得不用 '!' 替换 '%21' 并将标题从“Bearer”更改为“OAuth”。

于 2013-11-15T19:00:41.673 回答
0

看起来你在到达后错过了一步

https://login.salesforce.com/services/oauth2/authorize?response_type=token& client_id=theclientid&redirect_uri=https%3A%2F%2Fmysite.com

您需要输入登录详细信息,然后您将被重定向到您在连接的应用程序设置中设置的回调 url,其中包括可用于验证应用程序的访问令牌。

于 2013-11-15T18:23:39.733 回答