使用 Postman 的 Salesforce 集成 INVALID_SESSION_ID
Posted
技术标签:
【中文标题】使用 Postman 的 Salesforce 集成 INVALID_SESSION_ID【英文标题】:Salesforce Integration INVALID_SESSION_ID using Postman 【发布时间】:2019-09-30 18:03:36 【问题描述】:点击https://login.salesforce.com/services/oauth2/token时,使用邮递员。
发布https://login.salesforce.com/services/oauth2/token
回应:
我收到了一个令牌,但是当我尝试执行 GET /limits 之类的简单操作时,
GET 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、客户端密码、安全令牌、访问令牌)没有问题,所有这些似乎都已正确复制。
对于销售人员新手有什么想法吗?
【问题讨论】:
编辑问题并发布您的整个“GET 限制”请求。我的意思是特别是“授权”HTTP 标头,我想在其中看到“承载 sessionidgoeshere”(如果您偏执,可以截断/混淆 id)。 “/limits”不是一个正确的端点,它类似于“/services/data/v45.0/limits”,除非你只是匆忙在这里输入它。使用 My Domain 与 login.salesforce.com 仅在登录时很重要。在此之后,您应该使用从登录调用返回给您的端点(和会话 ID)。 @eyescream 更新instance_url
你回复说“na73”,你发送 GET 到“mi73”。在 *** 中的错字还是在 Postman 中的错字?否则一切看起来都不错
@eyescream 也没有,我只是为我的实例输入了 mi
这里的想法用完了。如果您正确登录,它应该都“正常工作”。尝试在id
参数下获取您在登录响应中返回的url,它应该返回一些关于您自己用户的信息。尝试另一个 URL,例如 /services/data/v45.0/query?q=SELECT+id,name+FROM+user+LIMIT+5
。试试另一个应用程序,比如workbench.developerforce.com -> 实用程序 -> REST explorer?也许 Postman 中的某些东西没有正确传递变量/破坏会话 ID(可能是不必要的 urlencoding?)
【参考方案1】:
实际上,我一直在努力解决这个问题。您需要进入设置选项卡并打开 Follow Authorization Header 设置。
Follow Authorization Header Setting
【讨论】:
考虑到问题是关于邮递员的,你的截图就成功了。将Follow Authorization Header
更改为on
解决了这个问题。为我节省了大量时间。
太棒了!谢谢@Apocawaka!我花了很多时间在这个问题上哦,上帝 kk。 tks
就是这样。 ?
我刚刚遇到了同样的问题,虽然这对我来说解决了一半的问题,但这是不对的。例如。使用此方法创建记录时,它实际上并没有创建记录。然而,这给了我一个线索——如果我在 Postman 中关闭了“自动跟踪重定向”,那么响应标头中的“位置”会告诉我我的域名应该是什么。在我的初始请求中解决了这个问题,解决了这个问题。 'Follow Auth Header' 选项不再需要并且可以使用 Postman 默认值 - 它也成功创建了记录。
只是想注意,当我使用“承载令牌”和邮递员的“使用令牌”按钮时,它在授权标头中粘贴了 id_token。确保您正在传递访问令牌。【参考方案2】:
我在 2021 年来到这里,对我来说,解决方案不是“关注授权标头”,而是访问令牌的 instance_url
与预期不同。在_endpoint
中使用这个instance_url
值就可以了。
【讨论】:
【参考方案3】:经过几天的斗争,我已经排除了这是 Postman 的问题。什么垃圾。只需关注https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/quickstart_code.htm 并改用 curl 命令即可。如果我将原始 curl 命令复制到邮递员中然后运行,它会继续以INVALID_SESSION_ID
失败,但在 ZSH 中工作正常
一个有用的 GUI 就这么多
【讨论】:
您是否尝试过@Apocawaka 解决方案来修改 Postman 上的设置?在更改Follow Authorization Header
后,它为我解决了以上是关于使用 Postman 的 Salesforce 集成 INVALID_SESSION_ID的主要内容,如果未能解决你的问题,请参考以下文章