2012-02-21 3 views
0

간단한 양식을 작성합니다. 양식의 모든 필드에 데이터를 입력하고 제출 단추를 누르면 양식에서 완료된 모든 데이터를 웹 서비스 클라이언트 (나머지)에게 보내야합니다.drupal 양식에서 웹 서비스 클라이언트 (REST)로 데이터 전송

제 질문은 양식에서 웹 서비스로 모든 데이터를 보내는 방법입니까? 이를위한 모듈이 있습니까? 아니면 API를 사용해야합니까?

감사합니다 : D

UPDATE :

내 2 개 필드를 포함 양식을 작성

: "이름"과 "전화"와 제출 버튼을 클릭합니다. (모두 내 자신의 모듈에 있음)

그럼 내가 방금 한 코드를 보여줍니다. 그러나, 내가 웹 서비스를 볼 때. 배송 데이터입니다 (표시되지 않음). 나는 디버그를했고 어를 실행할 때 깨달았다 : "curl_exec ($ ch)"는 나를 거짓으로 돌려 보낸다.

function mymodule_form_submit($form, &$form_state){  
    $name = $form_state['values']['name']; 
    $phone = $form_state['values']['phone']; 

    $data = array(
     'name' => $name, 
     'phone' => $phone 
    ); 

    $url = 'http://[IP]/event/management/attendee'; 

    $headers = array('Content-Type: multipart/form-data'); 


    $userpasswd = 'user:pass'; 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_POST, TRUE); 
    curl_setopt($ch, CURLOPT_USERPWD, $userpasswd); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE); 
    curl_setopt($ch, CURLOPT_FAILONERROR,1); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 15); 
    $result = curl_exec($ch); 
    curl_close($ch); 
} 

params 객체를 파라미터는, 웹 서비스, 위치 : 참석자 [ '이름'], 참석자 [ '전화']. 내 오류가 무엇입니까?

답변

0

확실한 서비스 모듈 3을 사용해보십시오. 평소처럼 훌륭한 드루팔 모듈 중 하나입니다. 여기에 링크 (http://drupal.org/node/736522)가 있습니다. 세션 인증 또는 aouth 인증 중 두 가지 기술을 사용하여 필드를 가져 오기 전에 사용자를 인증 할 수도 있습니다. 클라이언트 응용 프로그램에서 drupal을 "json, xml-rpc, rest ".

1- 먼저 세션 인증은 사용자 이름과 암호를 사용하여 인증합니다. 그런 다음 drupal에서 사용자 권한을 가져와 드루팔과 통신하는 응용 프로그램을 진행하기 위해 각 단계에서 인증해야합니다. 익명 사용자는 drupal에서 귀하의 허락에 따라 원하는 것을 얻을 수 있습니다.

2 - Aouth 인증을 사용하는 동안 사용자를 생성하고 토큰을 추가하면 토큰을 가진 사용자 만 자신이 설정 한 권한 규칙에 따라 응용 프로그램과 통신합니다. 익명 사용자의 경우에는 아무것도 가져 오거나 얻을 수 없습니다. drupal과 클라이언트 사이의 통신은 특정 토큰과 함께 사용됩니다.

저에게 더 많은 지원을 요청하십시오.

+0

uuhhmm 드루팔 (Drupal)이 서비스 일 때 서비스 모듈을 사용합니다. 하지만이 경우에는 Drupal에서 Webservice로 데이터를 보내려고합니다. 좋아, 내가 내 질문을 업데이 트거야, 내가 데이터를 전송에 대한 cURL을 사용하여 자신의 모듈을 만듭니다. 하지만 작동하지 않습니다 .. : ( –

+0

내 실수에 대한 죄송합니다. –

0

죄송합니다.

이 작업을 수행하는 두 가지 구현 방법이있다 :

1 당신은 node_api에 후크에이 방법으로 양식이 게시 된 데이터를 얻을 제출하고 웹 서비스로 전송 사용자 정의 모듈을 수행 할 수 있습니다

$json = drupal_http_request('http://maps.google.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false'); 
$decode = json_decode($json->data, TRUE); 

또는이 모듈 웹 서비스 클라이언트 모듈 (http://drupal.org/project/wsclient)을 사용하면 drupal에만 해당됩니다.

2- 및이 모듈에 대한 가이드는 http://drupal.org/node/1114308입니다.

관련 문제