2016-06-19 2 views
4

웬일인지, 나는 Twilio 모델이 어떻게 작동하는지 이해하는 데 어려움을 겪고있다. 결과적으로 추측하여 해결책을 코드화하려고합니다. (싫어 싫어합니다.) 누군가가 혼란을 일으킬 수 있기를 바랍니다."패스 스루"SMS 교환을 위해 Twilio를 어떻게 사용할 수 있습니까?

전 Twilio 번호로 문자를 보내면 내 전화로 받도록 전달자를 설정했습니다. 문제는 내가 그 텍스트에 답장 할 때 원래 보낸 사람에게 돌아가는 대신 Twilio로 이동한다는 것입니다.

내 전화 번호를 태그에서 '보낸 사람'문자열로 전달하려고 시도했지만 Twilio가 유효한 Twilio 번호가 아닌 것으로 거부됩니다.

<?php header('Content-Type: text/html'); ?> 
<Response> 

    <!-- ****** This gets rejected: ****** --> 
    <!-- Message to="<?=$_REQUEST['PhoneNumber']?>" from="<?=$_REQUEST['From']?>" --> 

    <Message to="<?=$_REQUEST['PhoneNumber']?>"> 
    <?=htmlspecialchars(substr($_REQUEST['From'] . $_REQUEST['Body'], 0, 1600))?> 
    </Message> 
</Response> 
+0

왜 전화 번호를에서 사용하려고합니까? 또한 Twilio에 회신 할 때 Twilio는 메시지의 번호 (귀하의 전화 번호)를 알고 있습니다. 확실하지 않지만 전화 번호를 마스킹하려고합니까? 예 : https://www.twilio.com/use-cases/masked-phone-numbers? –

+0

Twilio가 답장을 나에게 돌려 보내지 않으므로 그 일을하고 싶습니다. 다시 말해, Joe가 내 Twilio 번호를 텍스트로 입력하면 내 핸드폰에서 텍스트를 가져옵니다.하지만 핸드폰에서 텍스트에 응답하면 Joe에게 전송되는 대신 Twilio로 이동합니다 . 그 마지막 작품 - 내가 그 답장을 조에게 돌려 줄 수있는 방법 - 내가 알아 내려고하는 것. –

답변

2

메시지가 Twilio에서 사용자에게 전달되면 메시지를 보낸 전화 번호를 알아야합니다.

메시지를 보낼 때 Twilio에게 메시지를 보낼 위치를 알려줘야합니다.

다음과 같은 규칙이 있습니다. 메시지는 전화 번호로 시작한 다음 /으로 시작하고 실제 메시지는 webhook에이 코드를 사용할 수 있습니다.

<?php 
    header("content-type: text/xml"); 
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; 
?> 

<?php 

$myPhoneNumber = "+15557779999"; 

if ($_REQUEST['From'] == $myPhoneNumber) { 
    $message = explode("/", htmlspecialchars(substr($_REQUEST['Body'], 0, 1600))); 
    $theOtherPhoneNumber = $message[0]; 
    $theOtherMessage = $message[1]; 
    echo(
     "<Response> 
      <Message to=\"{$theOtherPhoneNumber}\"> 
      {$theOtherMessage} 
      </Message> 
     </Response>" 
    ); 

} else { 
    $message = htmlspecialchars(substr($_REQUEST['From'] ."/ " .$_REQUEST['Body'], 0, 1600)); 
    echo(
     "<Response> 
      <Message to=\"{$myPhoneNumber}\"> 
      {$message} 
      </Message> 
     </Response>" 
    ); 

} 

?> 

보시다시피 코드에서 전화 번호를 확인합니다. Twilio가받은 메시지가 전화 번호에서 온 것이면 코드는 메시지의 시작 부분에 넣은 번호로 코드를 전송합니다. 당신이 더 많은 것을 필요로 정교 경우

+15553331111/ Hey, how is going? 

Twilio가 마스크 전화 번호에 대한 몇 가지 자습서를 가지고 : 당신의 메시지는 다음과 같이해야한다. https://www.twilio.com/docs/tutorials

+0

고마워,하지만 이건 내 질문에 대답하지 않습니다. 어쩌면 나는 잘 설명하지 못했을 것이다. 그래서 나는 다시 시도 할 것이다 : 정상적인 SMS 대화에서 Joe가 나에게 문자를 보내면 그의 SMS는 그의 번호에서 온 것으로 태그가 붙어있다 - 그래서 그것에 응답하면 나의 답장은 그를. 하지만 Joe가 내 Twilio 번호를 텍스트로 입력하면 ** Twilio의 ** 번호에서 온 것으로 태그가 지정됩니다. 따라서 해당 텍스트에 회신하면 Joe에게 SMS가 전송되지 않고 Twilio에서 내 번호로 전송됩니다. 나를 텍스트로 작성한 모든 사람의 텍스트에서 번호를 복사하여 수동으로 새 대화를 작성하는 것은 합리적인 해결책이 아닙니다. –

+0

Twilio에게 메시지를 보낼 위치를 말하지 않으면 코드에 구현 된 규칙이없는 한 알 수 없습니다. 또한 메시지를 받으면 Joe1과 Joe2가 Twilio로부터 두 메시지를 모두 받았기 때문에 회신을 보내는 사람에게 동시에 Joe1과 Joe2가 전송됩니까? 조에게 전화 번호를 예약하고 있니? 그런 다음 자신의 번호를 하드 코드 할 수 있으며 모든 메시지는 #에서 전송 될 때 그에게 전달됩니다. –

+0

질문은 "Twilio에서 세션 및/또는 HTML의 쿠키와 비슷한 상태 저장 메커니즘을 구현할 수있는 방법이 있습니까?"라고 생각합니다. 하나가 아닐 것이라고 믿는 것은 다소 어렵습니다. 그러나 튜토리얼에서 예제를 찾을 수 없다는 것은 놀랍습니다. 어쨌든, 지금까지 도와 줘서 고마워. 대답이 아닐지라도 적어도 문제의 방향을 파악하는 데 도움이됩니다. –

관련 문제