Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
SMS iletileri 160 karakterle sınırlıdır ve bu da müşterilere URL gönderme yeteneğinizi bozabilir. URL'ler sorgu parametreleri, şifrelenmiş bilgiler vb. içerdiğinden 160 karakter sınırını aşabilir. 160 karakter sınırının çok altında kaldıkları için SMS aracılığıyla göndermeye uygun kısa URL'ler oluşturmak için Azure URL kısaltıcısını kullanabilirsiniz.
Bu belgede Azure İletişim Hizmetleri'ni Azure URL Kısaltıcısı ile tümleştirme işlemi özetlenmektedir. URL Kısaltıcı, kısaltılmış bağlantıları kolayca oluşturmanıza, yönetmenize ve izlemenize olanak tanıyan açık kaynak bir hizmettir.
Örnek kod
Bu öğreticinin tamamlanmış kodunu C# için Azure Örnekleri GitHub SMS Url Kısaltıcısı'nda bulabilirsiniz.
Önkoşullar
- Etkin bir Azure aboneliği. Ücretsiz hesap oluşturun.
- Etkin bir Azure İletişim Hizmetleri kaynağı. Daha fazla bilgi için bkz. Azure İletişim Hizmetleri kaynağı oluşturma.
- Azure İletişim Hizmetleri telefon numarası. Bir telefon numarası alın. URL'lerle ileti gönderebilmesi için telefon numaranızı doğrulamanız gerekir.
-
AzUrlShortener dağıtıldı. Hızlı dağıtım için Azure'a Dağıt düğmesine tıklayın.
- [İsteğe bağlı] Kullanıcı arabirimindeki bağlantıları yönetmek ve izlemek için Azure Url Kısaltıcısı'nı dağıtın.
- Bu öğreticide SMS istekleri bir Azure İşlevine yönlendirilir. Express gibi farklı bir çerçeve olan mevcut bir hizmeti kullanabilir veya öğreticiyi C# konsol uygulaması olarak çalıştırabilirsiniz. Bu öğreticiyi bir Azure İşlevi ile takip etmek için C# için Azure İşlevini ayarlama talimatlarına bakın.
Mimariye genel bakış
Bu makalede, Azure URL Kısaltıcı hizmeti aracılığıyla SMS gönderme ve URL'leri kısaltma isteklerini düzenlemeye yönelik ara yazılımların nasıl ayarlanacağı açıklanmaktadır. SMS gönderme işlemini tamamlamak için Azure İletişim Hizmetleri ile etkileşim kurar.
Azure İşlevini ayarlama
Başlamak için yeni bir Azure İşlevi oluşturmanız gerekir. Azure İşlevleri'ndeki adımları izleyerek Azure İşlevi'ni oluşturabilirsiniz. Azure İşlevi kullanmıyorsanız ve bunun yerine farklı bir çerçeve kullanıyorsanız, bu adımı atlayın ve sonraki bölüme geçin.
Azure İşlevi ayarlandıktan sonra dosyaya local.settings.json
gidin ve depolamanız gereken üç değer daha ekleyin: Azure İletişim Hizmetleri bağlantı dizesi, +15555555555 gibi telefon numarası ve gibi https://<Azure_Function_URL>/api/UrlCreate
bir URL Kısaltıcı uç noktası. Bu değişkenler, makalenin başındaki önkoşullardan oluşturduğunuz tüm değerlerdir.
{
"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>"
}
}
Sorgu parametrelerini yapılandırma
Azure İşlevi'ni oluşturduktan sonra, tetikleme için gereken sorgu parametrelerini yapılandırmanız gerekir. İşlev bir telefon numarası ve URL bekler. Telefon numarası, SMS iletisinin alıcısıdır. URL, kısaltılan ve alıcıya gönderilen bağlantıdır.
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);
}
}
}
URL'yi kısaltma
Artık telefon numarası ve URL'niz olduğuna göre, URL'yi kısaltmak için Azure URL Kısaltıcı hizmetini kullanabilirsiniz.
Azure URL Kısaltıcı hizmetini dağıttıktan emin olun. Hizmet birkaç uç nokta içerir, ancak bu öğretici için odak, UrlCreate
uç noktasındadır. Azure URL Kısaltıcı hizmetine kısaltmak istediğiniz URL ile bir PostAsync
isteği göndermek için POST
yöntemini kullanın.
Hizmet kısaltılmış URL'ye sahip bir JSON nesnesi döndürür. Kısaltılmış URL'yi adlı shortUrl
bir değişkende depolayın. Kod parçacığına dağıtılan Azure URL Kısaltma hizmetinizin uç noktasını ekleyin. Uç noktayı alma hakkında bilgi için bkz Dağıtımı doğrulama.
...
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);
}
}
}
SMS gönder
URL kısaltıldığından, SMS göndermek için Azure İletişim Hizmetleri kullanabilirsiniz.
send
paketinden SmsClient
sınıfından Azure.Communication.Sms
yöntemini kullanın.
dotnet add package Azure.Communication.Sms
Bu yöntem, SMS'i sorgu parametrelerinde sağlanan telefon numarasına gönderir. SMS kısaltılmış URL'yi içerir. SMS gönderme hakkında daha fazla bilgi için bkz . SMS gönderme.
...
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);
}
}
}
Yerel olarak test edin
Not
URL'lerle SMS mesajları göndermek için telefon numaranızı doğrulamanız gerekir. Doğrulama başvurunuz bir ila iki gün içinde bekleme durumuna ayarlandıktan sonra, URL gönderebilmek için telefon numarası etkinleştirilecek. Tam doğrulama beş ile altı hafta sürer. Ücretsiz numara doğrulama hakkında daha fazla bilgi için Ücretsiz Numara Doğrulama SSS bölümüne bakınız.
Visual Studio Code'a basarak F5
Azure İşlevinizi yerel olarak çalıştırın veya terminalde aşağıdaki komutu çalıştırın:
func host start
Ardından, Azure İşlevinizin uç noktasına istekte bulunarak işlevinizi test etmek için Postman gibi bir POST
araç kullanın. Telefon numarasını ve URL'yi sorgu parametreleri olarak sağlamanız gerekir. Örneğin, Azure İşleviniz yerel olarak çalışıyorsa http://localhost:7071/api/<FUNCTION NAME>?phoneNumber=%2B15555555555&url=https://www.microsoft.com
adresine bir istekte bulunabilirsiniz. Kısaltılmış URL'yi ve durumunu Success
içeren bir yanıt almalısınız.
Azure’a dağıtın
Azure İşlevinizi dağıtmak için adım adım yönergeleri izleyin.
Dağıtıldıktan sonra, işleve yerel olarak test ederken yaptığınız gibi benzer bir yöntemle erişebilirsiniz. Telefon numarasını ve URL'yi sorgu parametreleri olarak sağlamanız gerekir. Örneğin, Azure İşleviniz Azure'a dağıtıldıysa https://<YOUR AZURE FUNCTION NAME>.azurewebsites.net/api/<FUNCTION NAME>?phoneNumber=%2B15555555555&url=https://www.microsoft.com
adresine bir istekte bulunabilirsiniz. Kısaltılmış URL'yi ve durumunu Success
içeren bir yanıt almalısınız.
Örnek kod
Bu öğreticinin tamamlanmış kodunu JavaScript için Azure Örnekleri GitHub SMS Url Kısaltıcısı sayfasında bulabilirsiniz.
Önkoşullar
- Etkin bir Azure aboneliği. Ücretsiz hesap oluşturun.
- Etkin bir Azure İletişim Hizmetleri kaynağı. Daha fazla bilgi için bkz. Azure İletişim Hizmetleri kaynağı oluşturma.
- Azure İletişim Hizmetleri telefon numarası. Bir telefon numarası alın. URL'lerle ileti gönderebilmesi için telefon numaranızı doğrulamanız gerekir.
-
AzUrlShortener dağıtıldı. Hızlı dağıtım için Azure'a Dağıt düğmesine tıklayın.
- [İsteğe bağlı] Kullanıcı arabirimindeki bağlantıları yönetmek ve izlemek için Yönetici web uygulamasını dağıtın.
- Bu öğreticide SMS istekleri bir Azure İşlevine yönlendirilir. Express gibi farklı bir çerçeve olan mevcut bir hizmeti kullanabilir veya öğreticiyi Node.js konsol uygulaması olarak çalıştırabilirsiniz. Bu öğreticiyi Azure İşlevi ile takip etmek için TypeScript ile Azure İşlevi'ni ayarlama yönergelerine bakın.
Mimariye genel bakış
Bu makalede, Azure URL Kısaltma hizmeti aracılığıyla SMS gönderme isteklerini ve URL'lerin kısaltılması isteklerini düzenleyen bir ara yazılım ayarlama işlemi açıklanmaktadır. SMS gönderme işlemini tamamlamak için Azure İletişim Hizmetleri ile etkileşim kurar.
Azure İşlevini ayarlama
Başlamak için yeni bir Azure İşlevi oluşturmanız gerekir. Azure İşlevleri belgelerindeki adımları izleyerek Azure İşlevi'ni oluşturabilirsiniz. Azure İşlevi kullanmıyorsanız ve bunun yerine farklı bir çerçeve kullanıyorsanız, bu adımı atlayın ve sonraki bölüme geçin.
Azure İşlevi ayarlandıktan sonra dosyaya local.settings.json
gidin ve depolamanız gereken üç değer daha ekleyin: Azure İletişim Hizmetleri bağlantı dizesi, +15555555555 gibi telefon numarası ve gibi https://<Azure_Function_URL>/api/UrlCreate
URL Kısaltıcı uç noktası. Bu değişkenler, bu makalenin başındaki önkoşullardan oluşturduğunuz tüm değerlerdir.
{
"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>"
}
}
Sorgu parametrelerini yapılandırma
Azure İşlevi'ni oluşturduktan sonra, tetikleme için gereken sorgu parametrelerini yapılandırmanız gerekir. İşlev bir telefon numarası ve URL bekler. Telefon numarası, SMS iletisinin alıcısı olarak kullanılır. URL, kısaltılan ve alıcıya gönderilen bağlantıdır.
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;
URL'yi kısaltma
Artık telefon numarası ve URL'niz olduğuna göre, URL'yi kısaltmak için Azure URL Kısaltıcı hizmetini kullanabilirsiniz.
Azure URL Kısaltıcı hizmetini zaten dağıttıktan emin olun. Hizmet birkaç uç nokta içerir, ancak bu öğretici için odak, UrlCreate
uç noktasındadır. Azure URL Kısaltıcı hizmetine kısaltmak istediğiniz URL ile bir fetch
isteği göndermek için POST
yöntemini kullanın.
Hizmet kısaltılmış URL'ye sahip bir JSON nesnesi döndürür. Kısaltılmış URL'yi adlı shortUrl
bir değişkende depolayın. Kod parçacığına dağıtılan Azure URL Kısaltma hizmetinizin uç noktasını ekleyin. Uç noktayı alma hakkında bilgi için bkz Dağıtımı doğrulama.
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;
SMS gönder
Artık kısa URL'niz olduğuna göre, SMS göndermek için Azure İletişim Hizmetleri kullanın.
send
paketinden SmsClient
sınıfı içindeki @azure/communication-sms
yöntemiyle başlayın.
npm i @azure/communication-sms --save
Bu yöntem, SMS'i sorgu parametrelerinde sağlanan telefon numarasına gönderir. SMS kısa URL'yi içerir. SMS gönderme hakkında daha fazla bilgi için bkz . SMS gönderme.
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
};
})
};
Yerel olarak test edin
Not
URL'lerle SMS mesajları göndermek için telefon numaranızı doğrulamanız gerekir. Doğrulama uygulamanız bekleme durumuna (bir-iki gün) ayarlandıktan sonra, URL'leri göndermek için etkinleştirilecek telefon numarası. Tam doğrulama beş ile altı hafta sürer. Ücretsiz numara doğrulama hakkında daha fazla bilgi için bkz. Ücretsiz Doğrulama SSS.
Azure İşlevinizi yerel olarak çalıştırmak için Visual Studio Code'a basın F5
veya terminalde aşağıdaki komutu çalıştırın:
func host start
Ardından Postman gibi bir araç kullanarak Azure İşlevinizin uç noktasına istekte POST
bulunarak işlevinizi test edin. Telefon numarasını ve URL'yi sorgu parametreleri olarak sağlamanız gerekir. Örneğin, Azure İşleviniz yerel olarak çalışıyorsa http://localhost:7071/api/<FUNCTION NAME>?phoneNumber=%2B15555555555&url=https://www.microsoft.com
adresine bir istekte bulunabilirsiniz. Kısaltılmış URL'yi ve durumunu Success
içeren bir yanıt almalısınız.
Azure’a dağıtın
Azure İşlevinizi dağıtmak için adım adım yönergelere bakın.
Dağıtıldıktan sonra, işleve yerel olarak test ederken yaptığınız gibi benzer bir yöntemle erişebilirsiniz. Telefon numarasını ve URL'yi sorgu parametreleri olarak sağlamanız gerekir. Örneğin, Azure İşleviniz Azure'a dağıtıldıysa https://<YOUR AZURE FUNCTION NAME>.azurewebsites.net/api/<FUNCTION NAME>?phoneNumber=%2B15555555555&url=https://www.microsoft.com
adresine bir istekte bulunabilirsiniz. Kısaltılmış URL'yi ve durumunu Success
içeren bir yanıt almalısınız.
Sonraki adımlar
- Kısaltılmış URL'leriniz için özel bir etki alanı ekleyin.