Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Zprávy SMS jsou omezené na 160 znaků, což může ovlivnit vaši schopnost odesílat adresy URL zákazníkům. Adresy URL můžou překročit limit 160 znaků, protože obsahují parametry dotazu, šifrované informace atd. K vygenerování krátkých adres URL, které jsou vhodné k odesílání přes SMS, můžete použít zkrácení adresy URL Azure, protože zůstanou pod limitem 160 znaků.
Tento dokument popisuje proces integrace služeb Azure Communication Services s nástrojem Azure URL Shortener. Služba zkracovače URL je open-source služba, která umožňuje snadno vytvářet, spravovat a monitorovat zkrácené odkazy.
Ukázkový kód
Dokončený kód pro tento kurz najdete na webu Azure Samples GitHub SMS Url Shortener for C#.
Požadavky
- Aktivní předplatné Azure. Vytvoření účtu zdarma
- Aktivní zdroj Azure Communication Services. Další informace najdete v Vytvoření prostředku Azure Communication Services.
- Telefonní číslo služby Azure Communication Services. Získejte telefonní číslo. Musíte ověřit svoje telefonní číslo, aby mohlo posílat zprávy s adresami URL.
- Nasazený azurlshortener. Kliknutím na tlačítko Nasadit do Azure můžete rychle nasadit.
- [Volitelné] Nasaďte nástroj Azure Url Shortener pro správu a monitorování odkazů v uživatelském rozhraní.
- V tomto kurzu se požadavky SMS směrují do funkce Azure Functions. Můžete použít existující službu, jinou architekturu, jako je express, nebo jenom spustit kurz jako konzolovou aplikaci v jazyce C#. Pokud chcete postupovat podle tohoto kurzu s funkcí Azure Functions, přečtěte si pokyny k nastavení funkce Azure Functions pro jazyk C#.
Přehled architektury
Tento článek popisuje, jak nastavit middleware pro orchestraci požadavků na odesílání SMS a zkrácení adres URL prostřednictvím služby Azure URL Shortener. Komunikuje se službou Azure Communication Services a dokončí odesílání sms.
Nastavení funkce Azure Functions
Abyste mohli začít, musíte vytvořit novou funkci Azure Functions. Funkci Azure Functions můžete vytvořit podle kroků v Azure Functions. Pokud nepoužíváte funkci Azure Functions a místo toho používáte jinou architekturu, přeskočte tento krok a pokračujte k další části.
Jakmile je funkce Azure Functions nastavená, přejděte do local.settings.json
souboru a přidejte tři další hodnoty, které potřebujete uložit: připojovací řetězec služby Azure Communication Services, telefonní číslo, například +15555555555, a koncový bod Pro zkrácení adresy URL, například https://<Azure_Function_URL>/api/UrlCreate
. Tyto proměnné jsou všechny hodnoty, které jste vygenerovali z požadavků na začátku článku.
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"ACS_CONNECTIONSTRING": "<AZURE COMMUNICATION SERVICES CONNECTION STRING>",
"ACS_PHONE_NUMBER": "<AZURE COMMUNICATION SERVICES PHONE NUMBER>",
"URL_SHORTENER": "<URL SHORTENER ENDPOINT>"
}
}
Konfigurace parametrů dotazu
Po vytvoření funkce Azure Functions je potřeba nakonfigurovat parametry dotazu potřebné k jeho aktivaci. Funkce očekává telefonní číslo a adresu URL. Telefonní číslo je příjemcem zprávy SMS. Adresa URL je odkaz, který se zkracuje a odesílá příjemci.
namespace Company.Function
{
public static class SendSMSUrlShortener
{
[FunctionName("SendSMSUrlShortener")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string phoneNumberTo = req.Query["phoneNumber"]; // get phone number query parameter
string urlToShorten = req.Query["url"]; // get url to shorten query parameter
return new OkObjectResult(null);
}
}
}
Zkrácení adresy URL
Teď, když máte telefonní číslo a adresu URL, můžete k zkrácení adresy URL použít službu Azure URL Shortener. Ujistěte se, že jste nasadili službu Azure URL Shortener . Služba obsahuje několik koncových bodů, ale v tomto kurzu je fokus na UrlCreate
koncový bod.
PostAsync
Pomocí metody umístěte POST
požadavek do služby Azure URL Shortener s adresou URL, kterou chcete zkrátit.
Služba vrátí objekt JSON s zkrácenou adresou URL. Uložte zkrácenou adresu URL do proměnné s názvem shortUrl
. Do fragmentu kódu vložte koncový bod nasazené služby Azure URL Shortener. Informace o tom, jak získat koncový bod, najdete v tématu Ověření nasazení.
...
using System.Net.Http;
using System.Text.Json;
using System.Text;
namespace Company.Function
{
public class ShortenedUrl
{
public string ShortUrl { get; set; }
}
public static class SendSMSUrlShortener
{
static string urlShortener = Environment.GetEnvironmentVariable("URL_SHORTENER", EnvironmentVariableTarget.Process);
[FunctionName("SendSMSUrlShortener")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
//Parse Query Parameters
string phoneNumberTo = req.Query["phoneNumber"]; // get phone number query parameter
string urlToShorten = req.Query["url"]; // get url to shorten query parameter
//Get short URL from Azure URL Shortener
using var client = new HttpClient();
var requestData = new
{
Url = urlToShorten //Body request for the POST call
};
var requestBody = JsonSerializer.Serialize(requestData);
var httpContent = new StringContent(requestBody, Encoding.UTF8, "application/json");
var response = await client.PostAsync(urlShortener, httpContent); // POST call to the Azure URL Shortener
var content = await response.Content.ReadAsStringAsync();
var data = System.Text.Json.JsonSerializer.Deserialize<ShortenedUrl>(content); // Parse content to ShortenedUrl object
var url = data.ShortUrl;
log.LogInformation("Shortened URL " + url);
return new OkObjectResult(null);
}
}
}
Odeslat SMS
Teď, když je adresa URL zkrácená, můžete k odeslání sms použít službu Azure Communication Services. Použijte metodu send
z třídy SmsClient
z balíčku Azure.Communication.Sms
.
dotnet add package Azure.Communication.Sms
Tato metoda odešle SMS na telefonní číslo zadané v parametrech dotazu. Zpráva SMS obsahuje zkrácenou adresu URL. Další informace o tom, jak odeslat SMS, naleznete v tématu Odeslat SMS.
...
using Azure;
using Azure.Communication;
using Azure.Communication.Sms;
namespace Company.Function
{
// Class to deserialize URL Shortener response
public class ShortenedUrl
{
public string ShortUrl { get; set; }
}
public static class SendSMSUrlShortener
{
[FunctionName("SendSMSUrlShortener")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
//Parse Query Parameters
string phoneNumberTo = req.Query["phoneNumber"]; // get phone number query parameter
string urlToShorten = req.Query["url"]; // get url to shorten query parameter
//Get short URL from Azure URL Shortener
using var client = new HttpClient();
var requestData = new
{
Url = urlToShorten //Body request for the POST call
};
var requestBody = JsonSerializer.Serialize(requestData);
var httpContent = new StringContent(requestBody, Encoding.UTF8, "application/json");
string urlShortener = Environment.GetEnvironmentVariable("URL_SHORTENER", EnvironmentVariableTarget.Process); // Ex. https://<Azure Function URL>/api/UrlCreate
var response = await client.PostAsync(urlShortener, httpContent); // POST call to the Azure URL Shortener
var content = await response.Content.ReadAsStringAsync();
var data = System.Text.Json.JsonSerializer.Deserialize<ShortenedUrl>(content); // Parse content to ShortenedUrl object
var url = data.ShortUrl;
log.LogInformation("Shortened URL " + url);
//Send SMS with Azure Communication Services
string connectionString = Environment.GetEnvironmentVariable("ACS_CONNECTIONSTRING", EnvironmentVariableTarget.Process);
string phoneNumberFrom = Environment.GetEnvironmentVariable("ACS_PHONE_NUMBER", EnvironmentVariableTarget.Process); // Ex. +15555555555
SmsClient smsClient = new SmsClient(connectionString);
SmsSendResult sendResult = smsClient.Send(
from: phoneNumberFrom,
to: phoneNumberTo,
message: "Here is your shortened URL: " + url
); // Send SMS message with shortened URL
return new OkObjectResult(sendResult);
}
}
}
Místní testování
Poznámka:
Abyste mohli posílat SMS zprávy s adresami URL, musíte ověřit svoje telefonní číslo . Jakmile je vaše ověřovací aplikace nastavena do stavu čekání (jeden až dva dny), bude telefonní číslo povoleno pro odesílání adres URL. Úplné ověření trvá pět až šest týdnů. Další informace o ověřování bezplatných čísel najdete v FAQ pro ověřování bezplatných čísel.
Funkci Azure Functions spusťte místně stisknutím v F5
editoru Visual Studio Code nebo v terminálu spusťte následující příkaz:
func host start
Pak pomocí nástroje, jako je Postman , otestujte funkci tak, že vytvoříte POST
požadavek na koncový bod funkce Azure Functions. Jako parametry dotazu musíte zadat telefonní číslo a adresu URL. Pokud je například vaše funkce Azure spuštěná místně, můžete odeslat požadavek na http://localhost:7071/api/<FUNCTION NAME>?phoneNumber=%2B15555555555&url=https://www.microsoft.com
. Měli byste obdržet odpověď s zkrácenou adresou URL a stavem Success
.
Nasazení do Azure
Pokud chcete nasadit funkci Azure Functions, postupujte podle podrobných pokynů.
Po nasazení můžete k funkci přistupovat pomocí podobné metody, jako jste to udělali při místním testování. Jako parametry dotazu musíte zadat telefonní číslo a adresu URL. Pokud je například vaše funkce Azure Functions nasazená do Azure, můžete provést požadavek na https://<YOUR AZURE FUNCTION NAME>.azurewebsites.net/api/<FUNCTION NAME>?phoneNumber=%2B15555555555&url=https://www.microsoft.com
. Měli byste obdržet odpověď s zkrácenou adresou URL a stavem Success
.
Ukázkový kód
Dokončený kód pro tento kurz najdete na webu Azure Samples GitHub SMS Url Shortener pro JavaScript.
Požadavky
- Aktivní předplatné Azure. Vytvoření účtu zdarma
- Aktivní zdroj Azure Communication Services. Další informace najdete v Vytvoření prostředku Azure Communication Services.
- Telefonní číslo služby Azure Communication Services. Získejte telefonní číslo. Musíte ověřit svoje telefonní číslo, aby mohlo posílat zprávy s adresami URL.
- Nasazený azurlshortener. Kliknutím na tlačítko Nasadit do Azure můžete rychle nasadit.
- [Volitelné] Nasaďte webovou aplikaci Admin pro správu a monitorování odkazů v uživatelském rozhraní.
- V tomto kurzu se požadavky SMS směrují do funkce Azure Functions. Můžete použít existující službu, jinou architekturu, jako je express, nebo jenom spustit kurz jako konzolovou aplikaci Node.js. Pokud chcete postupovat podle tohoto kurzu s funkcí Azure Functions, přečtěte si pokyny k jeho nastavení ve službě Azure Functions pro TypeScript.
Přehled architektury
Tento článek popisuje, jak nastavit middleware, který orchestruje požadavky na odesílání SMS a zkrácení adres URL prostřednictvím služby Azure URL Shortener. Komunikuje se službou Azure Communication Services a dokončí odesílání sms.
Nastavení funkce Azure Functions
Abyste mohli začít, musíte vytvořit novou funkci Azure Functions. Funkci Azure Functions můžete vytvořit podle kroků v dokumentaci ke službě Azure Functions. Pokud nepoužíváte funkci Azure Functions a místo toho používáte jinou architekturu, přeskočte tento krok a pokračujte k další části.
Jakmile je funkce Azure Functions nastavená, přejděte do local.settings.json
souboru a přidejte tři další hodnoty, které potřebujete uložit: připojovací řetězec služby Azure Communication Services, telefonní číslo, například +15555555555 a koncový bod Pro zkrácení adresy URL, například https://<Azure_Function_URL>/api/UrlCreate
. Tyto proměnné jsou všechny hodnoty, které jste vygenerovali z požadavků na začátku tohoto článku.
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"FUNCTIONS_WORKER_RUNTIME": "node",
"ACS_CONNECTIONSTRING": "<AZURE COMMUNICATION SERVICES CONNECTION STRING>",
"ACS_PHONE_NUMBER": "<AZURE COMMUNICATION SERVICES PHONE NUMBER>",
"URL_SHORTENER": "<URL SHORTENER ENDPOINT>"
}
}
Konfigurace parametrů dotazu
Po vytvoření funkce Azure Functions je potřeba nakonfigurovat parametry dotazu potřebné k jeho aktivaci. Funkce očekává telefonní číslo a adresu URL. Telefonní číslo se používá jako příjemce zprávy SMS. Adresa URL je odkaz, který se zkracuje a odesílá příjemci.
const httpTrigger: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void> {
//Parse Query Parameters
let phoneNumber = req.query.phoneNumber; // get phone number query parameter
let url = req.query.url; // get url to shorten query parameter
context.res = {
// status: 200, /* Defaults to 200 */
body: null
};
};
export default httpTrigger;
Zkrácení adresy URL
Teď, když máte telefonní číslo a adresu URL, můžete k zkrácení adresy URL použít službu Azure URL Shortener. Ujistěte se, že jste už nasadili službu Azure URL Shortener . Služba obsahuje několik koncových bodů, ale v tomto kurzu je fokus na UrlCreate
koncový bod.
fetch
Pomocí metody umístěte POST
požadavek do služby Azure URL Shortener s adresou URL, kterou chcete zkrátit.
Služba vrátí objekt JSON s zkrácenou adresou URL. Uložte zkrácenou adresu URL do proměnné s názvem shortUrl
. Do fragmentu kódu vložte koncový bod nasazené služby Azure URL Shortener. Informace o tom, jak získat koncový bod, najdete v tématu Ověření nasazení.
const urlShortener = process.env.URL_SHORTENER
const httpTrigger: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void> {
//Parse Query Parameters
let phoneNumberTo = req.query.phoneNumber; // get phone number query parameter
let urlToShorten = req.query.url; // get url to shorten query parameter
//Get short URL from Azure URL Shortener
const body = JSON.stringify({ "Url": url})
await fetch(urlShortener, {
method: 'POST',
body: body
})
.then(res => res.json())
.then(async data => {
const shortUrl = data["ShortUrl"]
context.log(shortUrl)
}
})
context.res = {
// status: 200, /* Defaults to 200 */
body: null
};
};
export default httpTrigger;
Odeslat SMS
Teď, když máte krátkou adresu URL, odešlete sms pomocí služeb Azure Communication Services. Začněte metodou send
z třídy SmsClient
z balíčku @azure/communication-sms
.
npm i @azure/communication-sms --save
Tato metoda odešle SMS na telefonní číslo zadané v parametrech dotazu. Zpráva SMS obsahuje krátkou adresu URL. Další informace o tom, jak odeslat SMS, naleznete v tématu Odeslat SMS.
import { AzureFunction, Context, HttpRequest } from "@azure/functions"
import { SmsClient } from "@azure/communication-sms"
const httpTrigger: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void> {
//Parse Query Parameters
let to = req.query.phoneNumber; // Get phone number to send SMS to
let urlToShorten = req.query.url; // Get URL to shorten
//Get short URL from Azure URL Shortener
const body = JSON.stringify({ "Url": urlToShorten})
const urlShortener = process.env.URL_SHORTENER
await fetch(urlShortener, {
method: 'POST',
body: body
})
.then(res => res.json())
.then(async data => {
const url = data["ShortUrl"]
const connectionString = process.env.ACS_CONNECTIONSTRING
const phoneNumberFrom = process.env.ACS_PHONE_NUMBER
const smsClient = new SmsClient(connectionString);
// Send the SMS message
const sendResults = await smsClient.send({
from: phoneNumberFrom,
to: [to],
message: "Join your scheduled appointment here: " + url
}, {
enableDeliveryReport: true
});
// Use the "successful" property to verify the status.
for (const sendResult of sendResults) {
if (sendResult.successful) {
console.log("Success: ", sendResult);
} else {
console.error("Something went wrong when trying to send this message: ", sendResult);
}
}
context.res = {
// status: 200, /* Defaults to 200 */
body: url
};
})
};
Místní testování
Poznámka:
Abyste mohli posílat SMS zprávy s adresami URL, musíte ověřit svoje telefonní číslo . Jakmile je vaše ověřovací žádost nastavena na stav čekající (jeden až dva dny), telefonní číslo bude povoleno k odesílání adres URL. Úplné ověření trvá pět až šest týdnů. Další informace o ověřování bezplatných čísel najdete v nejčastějších dotazech k bezplatnému ověření bezplatné linky.
Pokud chcete funkci Azure Functions spustit místně, stiskněte F5
v editoru Visual Studio Code nebo v terminálu spusťte následující příkaz:
func host start
Pak pomocí nástroje, jako je Postman, otestujte funkci tak, že vytvoříte POST
požadavek na koncový bod vaší funkce Azure Functions. Jako parametry dotazu musíte zadat telefonní číslo a adresu URL. Pokud je například vaše funkce Azure spuštěná místně, můžete odeslat požadavek na http://localhost:7071/api/<FUNCTION NAME>?phoneNumber=%2B15555555555&url=https://www.microsoft.com
. Měli byste obdržet odpověď s zkrácenou adresou URL a stavem Success
.
Nasazení do Azure
Pokud chcete nasadit funkci Azure Functions, přečtěte si podrobné pokyny.
Po nasazení můžete k funkci přistupovat pomocí podobné metody, jako jste to udělali při místním testování. Jako parametry dotazu musíte zadat telefonní číslo a adresu URL. Pokud je například vaše funkce Azure Functions nasazená do Azure, můžete provést požadavek na https://<YOUR AZURE FUNCTION NAME>.azurewebsites.net/api/<FUNCTION NAME>?phoneNumber=%2B15555555555&url=https://www.microsoft.com
. Měli byste obdržet odpověď s zkrácenou adresou URL a stavem Success
.
Další kroky
- Přidejte vlastní doménu pro zkrácené adresy URL.