2016-07-21 61 views
2

我有一個Twilio號碼,用於在收到郵件時執行webhook。我想在回覆給用戶的回覆中包含一個鏈接。即。使用Twilio在短信中包含可單擊的鏈接

請登錄XYZ.com在https://login.xyz.com/?client=SMS&userid=abc

然而,當我將這個答覆我的Twilio調試以下消息得到一個架構驗證錯誤。

Warning - 12200 

Schema validation warning 

The provided XML does not conform to the Twilio Markup XML schema. Please refer to the specific error and correct the problem. 

這是郵件正文:

<Response> 
    <Message>Please login to Botler at 'https://login.xyz.com/?client=Twilio&userid=foobar'</Message> 
</Response> 

我試圖URL編碼的URL,我不再獲得然而一個架構驗證錯誤短信中的鏈接無法點擊(它包含了所有的轉義字符)。

我如何發送短信鏈接並讓用戶點擊?

謝謝。

解決方案

多的反覆試驗後,我發現一個可行的解決方案。我可以將url包裝在CDATA元素中,並且它傳遞模式驗證,並且鏈接被手機正確解釋。 例如,

<Response> 
    <Message>Please login to Botler at <![CDATA[https://login.xyz.com/?client=Twilio&userid=foobar]]></Message> 
</Response> 
+0

解決方案,發現和原來的文章編輯成包括解決 – Drew

回答

1

的短信是文本。該設備必須獲取該文本,並檢測該鏈接是否適用。

以下問題所造成的DOC here

  • 拼錯動詞
  • 不正確的情況下爲動詞
  • 拼寫錯誤或未知的屬性
  • 來路不明嵌套元素。

希望得到這個幫助。

+0

我明白爲什麼它不能在當前窗體中工作?手機無法識別轉義的url作爲URL,如果我不逃脫它,架構驗證失敗,所以我想知道如何格式化xml響應來傳遞我的字符串文本而不是正常內容(驗證失敗) – Drew

0

你不需要單引號,試試這個

<?xml version="1.0" encoding="UTF-8"?> 
<Response> 
    <Message>Please login to Botler at https://login.xyz.com/?client=Twilio&amp;userid=foobar</Message> 
</Response> 
+0

仍然無法進行模式驗證。錯誤我找到了一種方法來做到這一點。我會將答案添加到我原來的帖子中。 – Drew

0

看來鏈接點擊(例如在iOS 11.2.x)如果對自己的線路上發送。

在PHP(請確保您有twilio SDK - 例如從作曲家安裝:

%作曲家需要twilio/SDK

<?php 
require_once "vendor/autoload.php"; 
use Twilio\Twiml; 

$response = new Twiml(); 
$response->message("Your message without href"); 
$response->message("https://......."); 

echo $response; 
?>