我使用maven依赖提供的REST API调用salesforce。
<!-- Force REST API -->
<dependency>
<groupId>com.frejo</groupId>
<artifactId>force-rest-api</artifactId>
<version>0.0.39</version>
</dependency>
我已经实现了下面的代码,但是我想知道没有发送access_token我怎么得到结果?难道不安全或者如何实施?使用这个API会很好吗?
public class ForceApiExample {
public static void main(String[] args) {
ForceApi api = new ForceApi(new ApiConfig()
.setUsername("XXX@xy.com")
.setPassword("XXX")
.setClientId("XXXXXMB8EGsF3NRtJ0")
.setClientSecret("XXX"));
ApiSession session = api.getSession();
String accessToken = session.getAccessToken();
System.out.println("ACCESS_TOKEN : "+accessToken);
List<Map> result = api.query("SELECT name FROM Account").getRecords();
System.out.println("RESULT : "+result.size());
}
}
结果如下:
ACCESS_TOKEN : 00D7F0000001I8v!ARgAQB8tHuuquPRL5Z4uj4TBJG0cg0dJYBxy00jPhioEWKI86RlHqgXKSM0DfSTWHYVLl5i9HbbPxjXlgxlUP7XmLKejKrP4
RESULT : 535
答案 0 :(得分:0)
实际上,Salesforce
在发出请求时在内部向客户端提供authentication token
。对于REST
API,Salesforce
使用OAuth 2.0进行身份验证。存在不同种类的OAuth
身份验证过程。其中一个是通过用户凭据。当您使用用户凭据发送请求时,您实际上要求Salesforce
为您提供访问令牌。获取请求后,Salesforce
将验证凭据并重新发送访问令牌。但是这里没有刷新令牌可以使用,因为用户没有直接授权应用程序。
关注Understanding Authentication链接了解详情。