2013-03-30 1 views
2

현재 전자 메일 보내기/인바운드 서비스 및 Laravel 3.x로 전자 메일 클라이언트 (인바운드 및 아웃 바운드 전송)를 구축 중입니다.Laravel에 대해 HTTPful 라이브러리를 사용하여 JSON 응답 검색

메시지를 보내려면 HTTPful bundleMandrill과 함께 사용하고 내 메일/작성 POST 방법에 다음 코드를 사용합니다. http://paste.laravel.com/m79가 은 다음과 같은 형식의 응답 내가 API 로그에서 말할 수있는

지금까지, 요청이 제대로 (예상 JSON으로) 만들어이다

:

$url = 'https://mandrillapp.com/api/1.0/messages/send.json'; 
$data = array( 
    'key' => '{removedAPIkey}', 
    'message' => array (
    'to' => array(array("email" => $_to)), 
    'from_name' => Auth::user()->name, 
    'from_email' => Auth::user()->email, 
    'subject' => $_subject, 
    'html' => $_body 
    ), 
    'async' => true 
     ); 

$request = Httpful::post($url)->sendsJson()->body($data)->send(); 

링크는 더 나은 코드 위에 서식하는 다시 전송 :

[ 
    { 
     "email": "[email protected]", 
     "status": "queued", 
     "_id": "longmessageID" 
    } 
] 

그러나, 내가 뭘하려고 JSON에 요청 (특히 _id 속성)의 응답을 액세스 할 수 있습니다. 지금까지 내가 아는 한, HTTPful 클래스는 (json_decode()를 사용하여) 이것을 자동으로 수행해야한다. 그러나 접근 :

$request->_id; 

가 작동하지 않습니다와 나는 (내가 postmaster- 소프트 바운스, 하드 바운스와 거부 메시지를이 기록 할 수 있습니다 필요한이 데이터를 가져 오는 방법을 완전히 확실하지 않다 like 기능)

도움을 주시면 감사하겠습니다.

편집

다음 코드를 사용하여 우편으로 결과가 전송되는하지만 오류가 반환 : 예외에

$url = 'https://mandrillapp.com/api/1.0/messages/send.json'; 
$data = array( 
    'key' => '{removedAPIkey}', 
    'message' => array (
    'to' => array(array("email" => $_to)), 
    'from_name' => Auth::user()->name, 
    'from_email' => Auth::user()->email, 
    'subject' => $_subject, 
    'html' => $_body 
    ), 
    'async' => true 
     ); 

$request = Httpful::post($url)->sendsJson()->body($data)->send(); 

if ($request[0]->status == "queued") { 
    $success = true; 
} 

결과가 던져지지 : Cannot use object of type Httpful\Response as array

+2

"자신의 질문에 대한 답변"편집기를 사용하여 수정 사항을 답변으로 이동하십시오. 이렇게하면 다른 사람들이 필요한 경우 솔루션을 쉽게 볼 수 있습니다. –

+1

는 마이크 anthony와 일치합니다 –

+0

모두 완료되었습니다! 이 점을 지적 해 주셔서 감사합니다, 완전히 잊어 버렸습니다! –

답변

1

내가 말을해야, Aiias에게 큰 도움을주었습니다. 나는이 문제를 스스로 해결할 수 있었다 (나는 이것을 보면서 몇 시간을 보냈 음에 틀림 없다). 알고 싶어하는 모든 사람들을 위해, HTTPful 번들에는 응답이 유지되는 body 배열이 있습니다. 따라서 아래 코드는 작동 : 다시

$url = 'https://mandrillapp.com/api/1.0/messages/send.json'; 
$data = array( 
    'key' => '{removedAPIkey}', 
    'message' => array (
    'to' => array(array("email" => $_to)), 
    'from_name' => Auth::user()->name, 
    'from_email' => Auth::user()->email, 
    'subject' => $_subject, 
    'html' => $_body 
    ), 
    'async' => true 
     ); 

$request = Httpful::post($url)->sendsJson()->body($data)->send(); 

if ($request->body[0]->status == "queued") { 
    $success = true; 
} 

, 나를 위해 몇 가지 큰 혼란을 지우는 Aiias에 큰 감사합니다!

관련 문제