2013-04-30 2 views
0

Salesforce.com에 인증 된 GET 요청을 보내려고하면 오류가 발생합니다 (INVALID_SESSION_ID).Wordpress 플러그인에서 Salesforce를 인증 할 수 없습니다.

if (!class_exists('WP_Http')) { 
     include_once(ABSPATH . WPINC . '/class-http.php'); 
    } 

    // This is obviously the real username 
    $username = '[email protected]'; 
    // And this is obviously the real password concatonated with the security token 
    $password = 'xxxxxxxxxxxxxx'; 

    function getMembershipTables() { 
    $api_url = 'https://na15.salesforce.com/services/apexrest/directory'; 
    $headers = array('Authorization' => 'Basic ' . base64_encode("$username:$password")); 
    $args = array('headers' => $headers); 
    $request = new WP_Http; 
    $result = $request->request($api_url, $args); 
    $body = $result['body']; 
    echo "$body"; 
    } 

    add_shortcode('MembershipTables', 'getMembershipTables'); 

은 내가 성공적으로 칠 수 있음을 유의하십시오 : 여기

플러그인 기본적으로 바로 [MembershipTables] 단축 코드를 가지고 어떤 페이지에 REST 응답의 몸을 출력 전체에서이다 끝점을 Curl로 끝내지 만 이전 SOAP API를 사용하여 Salesforce에서 얻은 세션 토큰을 사용하여 동등하게 유지합니다 (예 : 클라이언트 ID/비밀번호 없음).

WP_Http에 문제가 있습니까? 또는 basic auth를 사용하여 Salesforce.com 요청을 인증 할 수 있습니까?

감사합니다.

답변

0

salesforce API는 기본 인증을 지원하지 않으므로 sessionId로 호출해야합니다. 다양한 방법으로 대화 형 & 프로그래밍 OAuth2 흐름 및 Soap login 호출을 통해 sessionId를 얻을 수 있습니다.

0

Basis Interactive는 해결할 비슷한 문제가있었습니다. 프로젝트를 진행할 때 프리셋 폼 플러그인과 커스텀 JS 쿠키 PHP Wordpress Plugin을 통해 SalesForce CRM을 호출하기로했습니다. SalesForce CRM에 데이터를 전달하는 PHP의 getRequest를 통해 SalesForce CRM에 대한 사용자 정의 호출을 개발하면이 문제를 쉽게 해결할 수있었습니다. 사용중인

테스트 사이트 : 여기

http://newtest.medullan.com/wp/?page_id=3089

는 코드와 논리적 쿼리를

다운로드 링크 재활용 :

http://basisinteractive.net/webdesign.html#wordpress

관련 문제