Как получить ответ SMS Shortlink API в виде ссылки, а не полезной нагрузки?

Jan 07 2021

Я использую приведенный ниже код (например, просто используя ссылку обмена стеками):

%%[ 
    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)
    ]%%

Все работает, но я получаю успешный ответ, как показано ниже:

{"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"}}

Это здорово, если я знаю, что я правильно настроил свой ampscript, но я не хочу, чтобы пользователь это видел. Я просто ищу ссылку. Так что я просто хочу, чтобы это было так:https://cutt.ly/repko-testing-741599999

Я чувствую, что есть простое решение, но я делаю это впервые, поэтому я не уверен, что делать дальше.

Ответы

2 JasonHanshaw Jan 07 2021 at 00:38

Вам нужно проанализировать ответ JSON и выбрать значение, которое вы хотите заполнить. Вы можете сделать это довольно легко с 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>