使用 Postman 点击 https://login.salesforce.com/services/oauth2/token 时。
发布https://login.salesforce.com/services/oauth2/token
回复:
我收到了一个令牌,但是当我尝试做像 GET /limits 这样简单的事情时,
获取https://na73.salesforce.com/services/data/v45.0/limits
回复是:
[
{
"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、客户端密钥、安全令牌、访问令牌)没有问题,所有这些似乎都已正确复制。
对于销售新手有什么想法吗?
实际上,我在用头撞了很久之后才解决了这个问题。您需要进入设置选项卡并打开关注授权标头设置。
我在 2021 年来到这里,对我来说,解决方案不是“遵循授权标头”,但访问令牌的
instance_url
与预期不同。在 instance_url
中使用这个 _endpoint
值就可以了。
就我而言,通过浏览器成功授权后,
_endpoint
变量没有被设置(这应该不会自动发生吗?),所以我必须手动设置它 - 但是,我输入了错误的URL它(https://whatever.lightning.force.com
而不是https://whatever.my.salesforce.com
),因此将
_endpoint
变量更改为正确的 URL 为我解决了这个问题。
经过几天的斗争,我已经排除了这是 Postman 的问题。 什么垃圾。 只需按照 https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/quickstart_code.htm 操作并使用curl 命令即可。如果我将原始的curl命令复制到邮递员中然后运行,它仍然会失败并显示
INVALID_SESSION_ID
,但在ZSH中工作正常
一个有用的 GUI 就到此为止了
即使激活了
Follow Authorization Header
,我也遇到了同样的问题
基本上,Authorization Bearer不是直接设置的,所以我在
Pre-request script
选项卡中添加了它
pm.request.headers.add({key: 'Authorization', value: 'Bearer {{_accessToken}}' });
现在就像魅力一样。
这里的问题是,它没有正确验证访问令牌。
因此,在邮递员中转到授权部分并选择“承载令牌”选项并将令牌粘贴到那里。有效
如果尝试完成“设置和连接邮递员”路径并使用游乐场(临时组织)或尝试访问任何临时组织,我相信我们将需要“获取新令牌”步骤来利用“{{_endpoint}} “变量而不是默认值”{{url}}。
url 环境变量设置为标准的“login.salesforce.com”....这对于具有自定义域设置的组织没有多大作用。 我非常确定自定义域是游乐场和临时组织的标准配置。 我想这就是这里所说的:
通过此步骤,我不需要对邮递员中的 GET Limits Rest api 设置进行任何调整,例如“遵循授权标头”