Azure Logic Apps ile Post Edilen Bazı Tweetleri Sql Bir DB’ye Basma
Selamlar,
Bu makalede Azure Logic Apps ile Twitter’a bağlanıp, gönderilen özel hastag’li tweetleri SQL bir DB’ye kaydedeceğiz. Bu işlem sırasında tweeter’ın api’sini kullanmadan, hatta kod bile yazmadan azure ekranları üzerinden tanımlamalar ile yapacağız.
Azure Logic Apps aslında Azure App Service’in bir parçasıdır. Temel olarak verilerin bulutda, kod yazmadan erişimini ve kullanımını otomatikleştirir. Azure Mantık Uygulamaları, temel olarak kullanıcı tarafından belirlenen belli bir template’e göre birbirini takip eden iş akışlarına dayanır. Her bir adımda, belirlenen iş süreci çalıştırılır ve amaçlanan sistem entegrasyonu sağlanır. Örnek Logic App templatelerinden birkaçı yukarıda gösterilmiştir.
Yukarıda görüldüğü gibi, öncelikle portal.azure.com üzerinden ==> “+ Create a resource” tıklanıp, arama kutucuğuna “Logic App” yazılarak seçilir.
Logic App segmentinde, aşağıdaki gibi Create Button’una basılır.
Sıra geldi Azure üzerinde konfigürasyon ayarlarına:
Aşağıda görüldüğü gibi Adı, Aboneliği, Kaynak Gurubu’u ve Lokasyonu tanımlanmıştır.
Oluşturulan “TwitterTrack Logic App” altında, “Logic App Designer” aşağıda görüldüğü gibi seçilir.
Sıra geldi Logic app’in yapacağı işi belirlemeye. Aşağıda görüldüğü gibi Tweeter seçilir.
Daha sonra twitter içindeki “Sign in” button’una basılır.
Bir sonraki ekranda, Twitter için gerekli Credential işlemleri yapılır ve gerekli izinler verilir.
Login işlemi tamamlanınca aşağıdaki gibi bir ekran ile karşılaşılır.
Erişim izin verildikten sonra, karşımıza şöyle bir ekran gelir.
Sıra geldi, ilgili ayarların yapılmasına:
- Search text: Dinlenecek tweet içeriği burada tanımlanır. Örneğin bu makalede #DevNot2019 Hastag’i ile post edilen tweetler yakalanacaktır.
- Interval – Frequency : Bu örnekte 30sn’de bir twitter, kontrol edilecektir.
Sırada atılan tweet’in Sentiment analizinin yapılıp, “> 0.5” score’dan büyük ise, işleme devam etmesinin sağlanmasında. İstenirse bu oran değiştirile de bilir.
Sentiment Analysis işleminde, API key istenmektedir. Buradaki adresten https://azure.microsoft.com/en-us/try/cognitive-services/ ilgi key oluşturularak, aşağıdaki gibi alınabilir.
Keyler alındıktan sonraki son ekran, aşağıdaki gibidir:
İlgili keyler alındıktan sonra karşımıza, credential alanları gelmekte ve ilgili alanlar bu şekilde doldurulmaktadır.
Detect Sentiment analize ek olarak, aşağıdaki gibi 2 parametre eklenir. Bunlar twitter’dan incelenecek mesaj(Text) ve Dil(Language) alanlarıdır.
Text alanı için seçim, Logic App Output’dan dönen “Tweet text” kolonu, aşağıdaki gibi atanır:
Son durum olarak, görüldüğü gibi Text için Twitter’dan gelen “Tweet text” alanı incelenmekte ve Dil için “en” seçilmektedir.
Buraya kadarki süreçte, Tweeter’dan “CoderLabo” account’u ile “#DevNot2019” hash tag’i ile bir tweet atılması durumunda, nasıl yakalanacağı incelenmiştir. Şimdi sıra geldi, yakalanan bu tweet’in fieldlarının, Sql bir DB’ye yazılmasına.
Logic App deneme amaçlı çalıştırıldığında, Output olarak yakalanan Json, aşağıdaki gibidir:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
{ "TweetText": "Test3 #DevNot2019", "TweetId": "1119592182304972803", "CreatedAt": "Sat Apr 20 13:22:31 +0000 2019", "CreatedAtIso": "2019-04-20T13:22:31.000Z", "RetweetCount": 0, "TweetedBy": "CoderLabo", "MediaUrls": [], "TweetLanguageCode": "en", "TweetInReplyToUserId": "", "Favorited": false, "UserMentions": [], "OriginalTweet": null, "UserDetails": { "FullName": "Bora KAŞMER", "Location": "", "Id": 1119401714443018200, "UserName": "CoderLabo", "FollowersCount": 0, "Description": "", "StatusesCount": 2, "FriendsCount": 0, "FavouritesCount": 0, "ProfileImageUrl": "https://pbs.twimg.com/profile_images/1119402403659382822/2u9dnP1w_normal.jpg" } } |
Bu alanlara bağlı olarak oluşturulacak “TweetMe” tablosunun Create Script’i, aşağıdaki gibi tanımlanmıştır:
1 2 3 4 5 6 7 8 9 10 11 |
CREATE TABLE [dbo].[TweetMe]( [id] [int] IDENTITY(1,1) NOT NULL, [CreatedAtIso] [datetime2](7) NULL, [TweetText] [varchar](1200) NULL, [RetweetCount] [int] NULL, [TweetedBy] [varchar](512) NULL, CONSTRAINT [PK__TweetMe__3213E83F0619BD68] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] |
Bir sonraki adımda, yakalanan tweet’in kaydedilmesi için “Sql Server” ve “Insert Row“, aşağıdaki gibi seçilir.
Sql Server için Custom Connection aşağıdaki gibi tanımlanmıştır.
İlgili credentiallar seçildikten sonra, “TweetMe” tablosu aşağıdaki gibi seçilir.
Şimdi sıra geldi, Logic App‘den dönen kolonlar ile SqlDb’deki “TweetMe” tablosundaki kolonların eşleştirilmesine:
Aşağıda görüldüğü gibi “CreatedAtIso” kolonuna karşılık ==> “Created” at kolonu atanmıştır.
Sırası ile diğer alanlar da atandığında, aşağıdaki gibi bir ekran ile karşılaşılır:
Tüm Logic App Design bittikten sonra test amaçlı “Run” tuşuna basıldığında, aşağıdaki gibi bir bildiri ile karşılaşılır.
Bu bekleme anında “CoderLabo” account’undan, aşağıdaki gibi bir tweet atılır ise:
Sonuç ekranı aşağıdaki gibi olur:
- Çalışma anında, Detect Sentiment’in Input ve Outputları :
- Insert Row’un Inputları :
- Insert Row’un Outputları:
SqlDB’ye gidilip, “TweetMe” tablosuna sorgu çekilir ise, atılına tweet’in aşağıdaki gibi gözükmesi gerekmektedir.
Geldik bir makalenin daha sonuna. Bu makalede twitter api ile uğraşmadan, hatta herhangi bir console app ya da microservice yazmadan, belli bir hesaba bağlı atılan tweetler, filitrelenip SQL bir DB’ye kaydedilmiştir. Böylece sosyal mecraların sürekli değişen API’lerinden ve buna bağlı entegrasyon işlerinden kurtulunmuş olunur. Ayrıca extra bir microservice yönetiminden ve yazılımından da kurtulunmuş olunur.
Yeni bir makalede görüşmek üzere hepinize hoşçakalın.
Source:
- https://www.c-sharpcorner.com/article/connect-twitter-to-linkedin-with-azure-logic-app/
- https://blobeater.blog/2018/05/02/getting-my-twitter-data-via-azure-logic-apps/
- https://social.msdn.microsoft.com/Forums/en-US/312f1825-a633-4306-9521-c4f8e9823208/how-to-use-azure-logic-app-to-store-twitter-tweets-into-azure-sql-database?forum=azurelogicapps
Son Yorumlar