我的要求:我需要使用Salesforce获取用户详细信息。
根据Salesforce文档,我首先需要用必要的凭据对用户进行身份验证,而不是只获得一个令牌发送到回调url,通过该可以发出其他请求。
但是这里的问题是,我正在制作一个从控制台运行的python应用程序,这样我就不会有任何可以作为回调url提供的公共url。在这种情况下,我如何访问API并满足我的需求。是否有其他方法直接访问令牌,而不是从回调urls或任何解决此问题的解决方案中验证和获取令牌?
发布于 2019-11-05 10:21:15
这似乎是个老掉牙的问题,但希望它能帮助到别人。
在这种情况下,您需要使用salesforce username_password身份验证。有关更多信息,请查看此Python Salesforce API Authentication。
在用户名-密码身份验证中,您需要使用clientId、clientSecret、用户名、密码+唯一密钥进行身份验证。一旦您获得成功的身份验证,您将获得一个访问令牌,在该令牌中您需要在后续调用中使用此令牌。
若要生成唯一的密钥,请参阅click here
验证和获取访问令牌的示例代码
import requests
import json
params = {
"grant_type": "password",
"client_id": "client_id", # Consumer Key
"client_secret": "client_secret", # Consumer Secret
"username": "username", # The email you use to login
"password": "password + unique_security_key"}
headers = {'content_type':'application/x-www-form-urlencoded'}
r = requests.post("https://login.salesforce.com/services/oauth2/token", params=params, headers=headers)
access_token = r.json().get("access_token")
instance_url = r.json().get("instance_url")
print("Access Token:", access_token)
print("Instance URL", instance_url)
https://stackoverflow.com/questions/43465345
复制相似问题