Rest 使用访问令牌时会话已过期或无效

Rest 使用访问令牌时会话已过期或无效,rest,session,salesforce,access-token,apex,Rest,Session,Salesforce,Access Token,Apex,我创建了一个已连接的应用程序,其中我选择了OAuth作用域“访问和管理您的数据(api)”和“完全访问(完全)”,通过新连接的应用程序中可用的消费者密钥和消费者机密,我生成了一个访问令牌 但是,当我向我在沙盒实例中创建的RestResource发送一个新的put请求时,头键为“Authorization”,值为“Bearer my_access_token”,我收到了以下错误 [ { "message": "Session expired or inva

我创建了一个已连接的应用程序,其中我选择了OAuth作用域“访问和管理您的数据(api)”和“完全访问(完全)”,通过新连接的应用程序中可用的消费者密钥和消费者机密,我生成了一个访问令牌

但是,当我向我在沙盒实例中创建的RestResource发送一个新的put请求时,头键为“Authorization”,值为“Bearer my_access_token”,我收到了以下错误

[
  {
    "message": "Session expired or invalid",
    "errorCode": "INVALID_SESSION_ID"
  }
]
我向其发送请求的url如下所示

https://my_instance_url/services/apexrest/CustomerAccountSync
我尝试通过在头中添加“OAuth”而不是“Bearer”来改变发送访问令牌的方式。但我仍然收到相同的错误响应


谁能告诉我为什么会这样?我正在使用“失眠”进行API调用。

您确定要发送到不同的端点吗?登录调用可能与generic
login.salesforce.com
test.salesforce.com
相反。但是登录后的所有请求都需要使用响应中返回的
实例url
,就像从现在起必须使用
访问\u令牌一样

它将在
https://mydomain.my.salesforce.com
格式,因此您需要
https://mydomain.my.salesforce.com.salesforce.com/services/data/v50.0/query?q=SELECT 来自帐户的Id

更多关于如何测试的信息:


文档:(它来自不同的REST API,但同样的想法也适用)

其他API调用正常吗?比如
/services/data/v50.0/query?q=从帐户限制5中选择Id
?您正在使用登录调用返回的实例url库吗?也许配置文件需要权限来执行Apex类,请您的SF管理员检查。不,我再次尝试发送一个get请求,上面的URL是您提到的帐户限制5中的Id。它仍然给了我同样的错误,你确定你要发送到不同的端点?登录调用可能与generic
login.salesforce.com
test.salesforce.com
相反。但是登录后的所有请求都需要使用响应中返回的
实例url
,就像从现在起必须使用
访问\u令牌一样。它将在
https://mycompany.salesforce.com
格式,因此您需要
https://mycompany.salesforce.com/services/data/v50.0/query?q=SELECT 来自帐户的Id
我将其发送到我登录到我的实例时经常看到的实例URL,也就是说,我应该将其发送到我在中收到的实例URL生成访问令牌时得到的响应。是的。当我这么做的时候,它成功了。这是端点问题。你能把上面的评论作为答案吗。这样我才能接受这个答案。