ฉันจะรับการตอบกลับ SMS Shortlink API ให้เป็นลิงก์และไม่ใช่เพย์โหลดได้อย่างไร
ฉันใช้รหัสด้านล่าง (ตัวอย่างเช่นใช้ลิงก์แลกเปลี่ยนสแต็ก):
%%[
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"}}
ซึ่งดีมากที่รู้ว่าฉันตั้งค่าแอมป์สคริปอย่างถูกต้อง แต่ฉันไม่ต้องการให้ผู้ใช้เห็นสิ่งนี้ ฉันแค่มองหาลิงค์ ฉันแค่มองให้มันเป็นแบบนี้:https://cutt.ly/repko-testing-741599999
ฉันรู้สึกว่าเป็นวิธีง่ายๆ แต่นี่เป็นครั้งแรกที่ฉันทำสิ่งนี้ดังนั้นฉันจึงไม่แน่ใจว่าขั้นตอนต่อไปคืออะไรในตอนนี้
คำตอบ
2 JasonHanshaw
คุณต้องแยกวิเคราะห์การตอบสนอง 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>