1. 获取访问令牌(Access Token)
Salesforce提供了一个REST API,允许你使用用户名和密码获取访问令牌。你需要使用OAuth 2.0
的“用户名和密码授权”模式。以下是请求步骤:
请求令牌
HTTP 方法:POST
URL:/services/oauth2/token
请求头:
Content-Type: application/x-www-form-urlencoded
请求体:
grant_type=password
client_id=YOUR_CONSUMER_KEY
client_secret=YOUR_CONSUMER_SECRET
username=YOUR_SALESFORCE_USERNAME
password=YOUR_SALESFORCE_PASSWORD
- 1
- 2
- 3
- 4
- 5
在这个请求体中:
-
client_id
和client_secret
是你在Salesforce应用程序中注册的API密钥。 -
username
和password
是Salesforce用户的登录凭证。 -
password
需要包含安全令牌(如果你启用了IP地址限制)。
示例代码(Python 使用 requests 库):
import requests
url = "/services/oauth2/token"
payload = {
'grant_type': 'password',
'client_id': 'YOUR_CONSUMER_KEY',
'client_secret': 'YOUR_CONSUMER_SECRET',
'username': 'YOUR_SALESFORCE_USERNAME',
'password': 'YOUR_SALESFORCE_PASSWORD'
}
response = requests.post(url, data=payload)
access_token = response.json().get('access_token')
instance_url = response.json().get('instance_url')
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
2. 使用访问令牌访问数据
获得访问令牌后,你可以使用它来访问Salesforce的API资源。例如,获取某个对象的记录:
HTTP 方法:GET
URL:https://YOUR_INSTANCE_URL/services/data//sobjects/OBJECT_NAME/RECORD_ID
请求头:
Authorization: Bearer YOUR_ACCESS_TOKEN
示例代码(Python 使用 requests 库):
headers = {
'Authorization': f'Bearer {access_token}',
'Content-Type': 'application/json'
}
data_url = f"{instance_url}/services/data//sobjects/Account/0012d00000Pf8FbAAJ"
response = requests.get(data_url, headers=headers)
data = response.json()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
注意事项
- 安全性:避免在代码中硬编码用户名和密码。考虑使用安全存储方式来处理这些信息。
- 限制:使用用户名和密码模式仅适用于开发和测试环境。在生产环境中,应考虑使用更安全的OAuth 2.0授权模式,如Web服务器授权。