2011-08-25 4 views
2

맞춤 클래스의 단일 웹 서비스 메소드를 "파트너"에게 공개하여 리드를 생성 할 수있는 Salesforce 기능을 연구 중입니다.Salesforce 다른 WSDL 파일 및 사용시기

클래스/메소드가 생성되고 테스트되었으며 예상대로 작동하므로 구현을 위해 노력하고 있습니다.

나는 세일즈 포스의 웹 서비스 문서와 요리 책 요리법을 모두 검토하고 있지만, 필자가 볼 수있는 모든 것은 Enterprise 또는 Partner WSDL 파일 사용에 관해서 만 이야기하고 있으므로 더 많은 액세스가 필요할 것이라고 생각합니다.

클래스 자체에서 생성 된 WSDL 파일을 가져 오는 경우 메소드에 액세스 할 수 있지만 참조로 예제를 사용하여 로그인 할 수있는 방법을 찾지 못하는 것 같습니다.

여기에 2 가지 기본 질문이 있습니다.

  1. 하나의 메서드를 노출하려면 실제로 모든 인스턴스에 액세스해야합니까?
  2. 제공해야 할 최소 금액은 얼마입니까?

답변

5

WSDL 자체는 웹 서비스의 정의에 불과하며 실제 조직 액세스를 제어하지 않습니다. 조직에 대한 액세스 권한을 얻으려면 웹 서비스에 대한 각 요청에 세션 ID가 포함되어야합니다. 세션 ID는 조직의 지정된 사용자에게 연결되므로 자신의 프로필을 제공하고 액세스 권한을 확보하여 액세스 권한을 제어 할 수도 있습니다. 프로파일은 웹 서비스 자체가 아닌 객체/필드와 관련이 있으며 항상 동일한 세션을 사용하여 다른 웹 서비스에 액세스 할 수 있기 때문에 데이터 측면에서 액세스해야 할 대상에 대해 생각합니다. 프로필에는 Apex 클래스 수준의 액세스 제어가 있지만 SOAP API를 통해 동일한 데이터 작업을 수행하는 것을 막지는 못하므로 액세스 권한이 필요한 프로필 만 노출되도록하고 강제 적용됩니다. 어디에나.

세션 ID를 얻는 한, 사용자 인터페이스와 사용자 인터페이스의 관계에 따라 다소 다릅니다. 일반적으로 OAuth (Salesforce 도움말에서 "원격 액세스"라고 함)를 사용하면 응용 프로그램에서 사용자 이름과 비밀번호를 사용하지 않아도되지만 결국에는 직접 Salesforce로 전송됩니다 사용자. 앱에 따라 선택할 수있는 몇 가지 흐름이 있으며 도움말에 설명되어 있습니다. REST API doc has a nice intro to using OAuht은 세션 아이디 (OAuth에서 "토큰"이라고도 함)를 얻습니다. REST에 관해서는 새로운 Apex REST API을 사용하는 것도 고려해 볼 수 있습니다.이 인터페이스를 사용하면 Apex에서 유사한 맞춤 웹 서비스를 만들 수 있지만 REST 인터페이스를 사용할 수 있습니다.

파트너 및 엔터프라이즈 API에는 또한 SOAP 기반이기 때문에 편리하지만 응용 프로그램이 사용자 이름과 암호를 직접 처리해야하기 때문에 유리한 입장이 아닌 login() 메서드가 있습니다. 이 옵션을 사용하면 파트너 및 엔터프라이즈 API를 사용하여 로그인하고 세션 ID를 얻은 다음 사용자 정의 웹 서비스로 전환합니다. 예,이 옵션을 사용하려면 WSDL과 파트너 또는 엔터프라이즈 WSDL을 모두 소비해야하며 다른 메소드는 무시해야합니다.하지만 거기에있는 메소드가 액세스 할 수 있다는 것을 의미하지는 않습니다 (예 : 지정된 객체 유형에 대한 프로파일에서 삭제하면 delete() 메소드를 사용할 수 없습니다.

1

사용자가 제공 한 내용과 사용자가 수행 할 수있는 작업은 사용자 자격 증명을 제공하면 2 가지 별도의 작업이며 사용자가 사용할 WSDL에 관계없이 사용자가 수행 할 수있는 모든 작업을 수행 할 수 있습니다. 따라서 원하는 권한을 수행 할 수있는 최소한의 권한을 가진 제한된 권한을 가진 사용자를 만들고자 할 것입니다.

일단 엔터프라이즈, 파트너 또는 사용자 정의 WSDL을 제공하면 상관 없습니다.

apex 클래스 WSDL을 제공하면 파트너 WSDL, OAuth2 플로우 중 하나 또는 웹탭 또는 사용자 정의 링크에서 로그인 할 수있는 로그인 방법이 필요합니다. (정확한 시나리오에 따라 다름).

마지막으로 WSDL이나 자격 증명 없이도 salesforce 계정에서 리드를 만들 수있는 web2lead 기능을 보았습니다.

관련 문제