Python 通过API请求的Salesforce OAuth令牌

Python 通过API请求的Salesforce OAuth令牌,python,salesforce,Python,Salesforce,我是salesforce API的新手。目前,我正在开发一个助手方法,它允许我们在salesforce沙箱中创建一个新用户。 目前我遇到的一个障碍是如何从salesforce获得身份验证令牌,以便我可以将其与其他请求一起传递 以下是迄今为止我掌握的代码[python]: def get_sf_auth_token(username, password): req_username = 'users_name_here' req_password = 'users_password_here' r

我是salesforce API的新手。目前,我正在开发一个助手方法,它允许我们在salesforce沙箱中创建一个新用户。 目前我遇到的一个障碍是如何从salesforce获得身份验证令牌,以便我可以将其与其他请求一起传递

以下是迄今为止我掌握的代码[python]:

def get_sf_auth_token(username, password):
req_username = 'users_name_here'
req_password = 'users_password_here'
req_url = 'https://na3.salesforce.com/services/oauth2/token'

payload = {"client_id":"COMNSUMER_KEY",
           "client_secret":"CONSUMER_SECRET",
           "username": req_username,
           "password": req_password
           }

sf_token = requests.post(req_url, data=payload)
print(sf_token.status_code)
print(sf_token.text)
我缺少的两个值是CONSUMER\u KEY和CONSUMER\u SECRET。我不知道这些价值观从何而来

当我发送此请求时,我会收到以下信息:

400
{"error":"unsupported_grant_type","error_description":"grant type not supported"}
什么是补助金类型


总的来说,我只需要这方面的帮助,任何信息都非常感谢

您需要将
授权类型
添加到您的
有效负载
grant\u type
键的值应该是
password
,因为您使用的是用户名和密码身份验证流

payload = {"client_id":"COMNSUMER_KEY",
           "client_secret":"CONSUMER_SECRET",
           "username": req_username,
           "password": req_password,
           "grant_type": "password" 
           }
您还需要确保将安全令牌附加到有效负载中密码的末尾。更多关于这方面的信息可以找到


要获取
客户端id
客户端密码
,您需要在Salesforce UI中创建一个已连接的应用程序。可以找到此过程的步骤。

您需要将
授权类型添加到
有效负载中。
grant\u type
键的值应该是
password
,因为您使用的是用户名和密码身份验证流

payload = {"client_id":"COMNSUMER_KEY",
           "client_secret":"CONSUMER_SECRET",
           "username": req_username,
           "password": req_password,
           "grant_type": "password" 
           }
您还需要确保将安全令牌附加到有效负载中密码的末尾。更多关于这方面的信息可以找到


要获取
客户端id
客户端密码
,您需要在Salesforce UI中创建一个已连接的应用程序。可以找到此过程的步骤。

我建议使用简单的Salesforce python包,它不需要使用者密钥。您只需使用您的电子邮件地址、密码和安全令牌

from simple_salesforce import SFType
from simple_salesforce import Salesforce 
sf = Salesforce(username='my_Salesforce_Email@mail.com', password='my_SF_password', security_token='my_Generated_token_from_Salesforce', client_id='This does not really matter')
然后创建一个类似于:

sf.Contact.create({'FirstName' : First, 'LastName' : Last, 'Newsletter__c' : Newsletter, 'Email' : Email1, 'Phone' : Phone, 'MailingStreet' : Street+" "+Apt, 'MailingCity' : City, 'MailingPostalCode' : Postal, 'AccountId' : "001U000001ZEB89"})

我建议使用简单的Salesforce python包,它不需要使用者密钥。您只需使用您的电子邮件地址、密码和安全令牌

from simple_salesforce import SFType
from simple_salesforce import Salesforce 
sf = Salesforce(username='my_Salesforce_Email@mail.com', password='my_SF_password', security_token='my_Generated_token_from_Salesforce', client_id='This does not really matter')
然后创建一个类似于:

sf.Contact.create({'FirstName' : First, 'LastName' : Last, 'Newsletter__c' : Newsletter, 'Email' : Email1, 'Phone' : Phone, 'MailingStreet' : Street+" "+Apt, 'MailingCity' : City, 'MailingPostalCode' : Postal, 'AccountId' : "001U000001ZEB89"})

非常感谢,我会看一看。如果你发现这个答案对你有帮助@Lombax,别忘了接受它!非常感谢,我会看一看。如果你发现这个答案对你有帮助@Lombax,别忘了接受它!