Làm cách nào để nhận được phản hồi API liên kết ngắn SMS là một liên kết chứ không phải là một trọng tải?

Jan 07 2021

Tôi đang sử dụng mã bên dưới (chỉ sử dụng liên kết trao đổi ngăn xếp chẳng hạn):

%%[ 
    var @Id, @shortenUrl, @cuttlyUrl, @link, @linkName
    set @startDate = "2021-01-01 6:45 AM"
    set @endDate = Now(1)
    set @numOne = 100000
    set @numTwo = 99999
    set @randNum = random(@numOne,@numTwo)
    set @time = dateDiff(@startDate, @endDate, "MI")
    set @linkName = concat('repko-testing-',@time,@randNum)
    set @link = 'https://salesforce.stackexchange.com/questions/122185/ampscript-in-sms-how-to-use-dynamic-content-in-sms-with-ampscript-mobileconne'
    set @cuttlyUrl = Concat('https://cutt.ly/api/api.php?key=[key]&short=',@link,'&name=',@linkName,'&format=txt')
    set @shortenUrl = HTTPGet(@cuttlyUrl)
    ]%%

Mọi thứ đang hoạt động, nhưng tôi nhận được phản hồi thành công như bên dưới:

{"url":{"status":7,"fullLink":"https:\/\/salesforce.stackexchange.com\/questions\/122185\/ampscript-in-sms-how-to-use-dynamic-content-in-sms-with-ampscript-mobileconne","date":"2021-01-06","shortLink":"https:\/\/cutt.ly\/repko-testing-741599999","title":"marketing cloud - AMPScript in SMS - How to use dynamic content in SMS with AMPScript? MobileConnect - Salesforce Stack Exchange"}}

Điều này thật tuyệt khi biết rằng tôi đã thiết lập ampscript của mình một cách chính xác, nhưng tôi không muốn người dùng nhìn thấy điều này. Tôi chỉ đang tìm kiếm liên kết. Vì vậy, tôi chỉ đang tìm kiếm nó như thế này:https://cutt.ly/repko-testing-741599999

Tôi cảm thấy có một giải pháp đơn giản, nhưng đây là lần đầu tiên tôi làm điều này nên tôi không chắc bước tiếp theo bây giờ là gì.

Trả lời

2 JasonHanshaw Jan 07 2021 at 00:38

Bạn cần phân tích cú pháp phản hồi JSON và chọn giá trị mà bạn đang muốn điền. Bạn có thể làm điều này khá dễ dàng với SSJS:

<script runat="server">
Platform.Load("Core", "1");

/* GET HTTPGET RESPONSE */
var jsonResp = Platform.Function.ParseJSON(Platform.Variable.GetValue("@shortenUrl"));

/* GET SHORT LINK VALUE FROM RESPONSE */
var shortLink = jsonResp.url.shortLink;

/* OUTPUT VALUE OR ASSIGN TO AMPSCRIPT VARIABLE*/
Write(shortLink);
Platform.Variable.SetValue("@shortLink",shortLink);
</script>