获取SalesForce中已连接应用的刷新\u令牌
我设置了一个已连接的应用程序,一个Python应用程序,以代表用户以编程方式访问Salesforce对象(脱机访问) 该应用程序工作正常,我可以生成一个获取SalesForce中已连接应用的刷新\u令牌,salesforce,salesforce-lightning,Salesforce,Salesforce Lightning,我设置了一个已连接的应用程序,一个Python应用程序,以代表用户以编程方式访问Salesforce对象(脱机访问) 该应用程序工作正常,我可以生成一个访问\u令牌: $curlhttps://login.salesforce.com/services/oauth2/token -d“授权类型=密码”-d“客户端id=我的应用程序\客户端id”-d“客户端密码=我的应用程序\密码”-d”用户名=my@user.com-d“password=my_password” {“访问令牌”:“00D090
访问\u令牌
:
$curlhttps://login.salesforce.com/services/oauth2/token -d“授权类型=密码”-d“客户端id=我的应用程序\客户端id”-d“客户端密码=我的应用程序\密码”-d”用户名=my@user.com-d“password=my_password”
{“访问令牌”:“00D0900000KDIX!AQoAQNi1234”,“实例url”:https://my_instance.salesforce.com,“id”:https://login.salesforce.com/id/12345/12345“,”令牌类型“:”持票人“,”签发地点“:”1606401330889“,”签名“:”abc/def”}
到目前为止还不错
现在我想切换到使用刷新令牌的基于web服务器的流,但我被难住了。我从何处获得初始的refresh\u令牌
,与grant\u type=refresh\u令牌
一起发送?文档似乎假设我已经有了一个refresh\u令牌
,只想基于此生成另一个access\u令牌
,但事实并非如此
端到端的实际步骤和必要调用是什么
我找到并阅读的文档列表,但并没有让我变得更聪明:
- 以下是有关OAuth流的Salesforce文档。它是这样运行的;请注意,这涉及到用户交互,因此
curl
本身不足以清楚地演示流程
- 您可以将用户引导到其web浏览器中的Salesforce登录UI,以获取授权码:
https://login.salesforce.com/services/oauth2/authorize?client_id=<YOUR CONNECTED APP CLIENT ID>&redirect_uri=<CALLBACK URL ON YOUR SERVER>&response_type=code
https://login.salesforce.com/services/oauth2/authorize?client_id=&redirect_uri=&response_type=code
- 用户与授权页面交互以批准您的应用程序
- 然后将用户重定向到您在调用中提供的应用程序中的回调URL(注意:这也必须在连接的应用程序定义中设置为回调),例如
https://YOUR_SERVER.com/oauth2/callback?code= 介绍如何将JWT身份验证与
Python库配对。在连接的应用程序上填充证书和分配预批准的配置文件(或更好的权限集)需要一点初始设置,但一旦完成设置,它将非常顺利,并且不需要任何用户交互。您尝试实现哪种OAuth流?听起来您可能想要或流,但如果您正在构建一个无头脱机应用程序,您可能会想要替代它。@Davidred JWT,最终。但现在:simple\u salesforce
现在我想切换到基于web服务器的流,使用刷新令牌!非常好的回答,包括最后一段。谢谢,很好。对于任何想知道的人来说:
与instance\u url
refresh\u令牌一起返回到项目符号4的JSON响应中。
https://YOUR_SERVER.com/oauth2/callback?code=<AUTHORIZATION CODE>