【发布时间】: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”。在 stackoverflow 中的错字还是在 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?)
标签: javascript api salesforce integration salesforce-lightning