使用 Postman 的 Salesforce 集成 INVALID_SESSION_ID

问题描述 投票:0回答:7

使用 Postman 点击 https://login.salesforce.com/services/oauth2/token 时。

发布https://login.salesforce.com/services/oauth2/token

enter image description here

回复:

enter image description here

我收到了一个令牌,但是当我尝试做像 GET /limits 这样简单的事情时,

获取https://na73.salesforce.com/services/data/v45.0/limits

enter image description here

回复是:

[
    {
        "message": "Session expired or invalid",
        "errorCode": "INVALID_SESSION_ID"
    }
]

奇怪的是,当我将所有凭据更改为使用不同电子邮件地址创建的免费“开发人员帐户”时,一切正常。 所有请求和标头都完全相同,但来自任一帐户的值除外。

在这里挖掘了很多线索后,我想也许我的生产帐户(我现在发布的帐户)没有启用 API。 事实证明我的生产帐户已启用 API。

我还尝试将 https://login.salesforce.com/services/oauth2/token 更改为 https://na73.salesforce.com/services/oauth2/token 正如一些线程所建议的那样,但这只是时间出来了。

比较两个帐户权限时,它们看起来相同,并且我已确认我的凭据(客户端 ID、客户端密钥、安全令牌、访问令牌)没有问题,所有这些似乎都已正确复制。

对于销售新手有什么想法吗?

javascript api salesforce integration salesforce-lightning
7个回答
32
投票

实际上,我在用头撞了很久之后才解决了这个问题。您需要进入设置选项卡并打开关注授权标头设置。

Follow Authorization Header Setting


3
投票

我在 2021 年来到这里,对我来说,解决方案不是“遵循授权标头”,但访问令牌的

instance_url
与预期不同。在
instance_url
中使用这个
_endpoint
值就可以了。


2
投票

就我而言,通过浏览器成功授权后,

_endpoint
变量没有被设置(这应该不会自动发生吗?),所以我必须手动设置它 - 但是,我输入了错误的URL它(
https://whatever.lightning.force.com
而不是
https://whatever.my.salesforce.com
),
所以我会得到一个 302 重定向到正确的 URL,但随后该 URL 会返回此消息。

因此将

_endpoint
变量更改为正确的 URL 为我解决了这个问题。


1
投票

经过几天的斗争,我已经排除了这是 Postman 的问题。 什么垃圾。 只需按照 https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/quickstart_code.htm 操作并使用curl 命令即可。如果我将原始的curl命令复制到邮递员中然后运行,它仍然会失败并显示

INVALID_SESSION_ID
,但在ZSH

中工作正常

一个有用的 GUI 就到此为止了


1
投票

即使激活了

Follow Authorization Header

,我也遇到了同样的问题

基本上,Authorization Bearer不是直接设置的,所以我在

Pre-request script
选项卡中添加了它

pm.request.headers.add({key: 'Authorization', value: 'Bearer {{_accessToken}}' });

现在就像魅力一样。


0
投票

这里的问题是,它没有正确验证访问令牌。

因此,在邮递员中转到授权部分并选择“承载令牌”选项并将令牌粘贴到那里。有效


0
投票

如果尝试完成“设置和连接邮递员”路径并使用游乐场(临时组织)或尝试访问任何临时组织,我相信我们将需要“获取新令牌”步骤来利用“{{_endpoint}} “变量而不是默认值”{{url}}。

url 环境变量设置为标准的“login.salesforce.com”....这对于具有自定义域设置的组织没有多大作用。 我非常确定自定义域是游乐场和临时组织的标准配置。 我想这就是这里所说的:

https://trailhead.salesforce.com/content/learn/modules/identity_login/identity_login_my_domain#:~:text=因为%20having%20a%20My%20Domain,your%20internal%20Salesforce%20org%20ID.

通过此步骤,我不需要对邮递员中的 GET Limits Rest api 设置进行任何调整,例如“遵循授权标头”

enter image description here

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.