テキスト私は肯定的なcovid


アバウト


私は、私が目覚める前に毎朝、COVID - 19に関連したポジティブなニュース記事を送ってくれるServerlessなアプリケーションを構築しました.
この進行中のパンデミックの間、私の問題はあまりに多くのニュース消費でした、そして、それの多くは否定的に私に影響を及ぼします.私は、現在、私の時代に少しのポジティブ性をもたらす何かをつくるすばらしい機会であるとわかりました.

カテゴリ


面白い統合.

ギタブレポ


マディビース / デイリーポジティブニュース


テキストメッセージを介してCOVID - 19について肯定的なニュース記事を送信するServerlessアプリ。


プロジェクトをローカルで動作させる方法についての動画


👩🏽‍💻 コード環境の設定方法


Follow this tutorial and you will install VS Code and the necessary Azure extensions needed.

🛠 セットアップAPIキーと資格情報


必要です.
  • TwilioSid, TwilioAuthToken, TwilioPhoneNumber

  • Azure account, CognitiveServicesEndpoint and TextAnalyticsApiKeyCredential 無料のWebを使用して/コンテナ計画、それは無料の層で、必要な機能が含まれています.more info here
  • NewsApiKey
  • 📦 パッケージ


    これらをクローン化する際にプロジェクトに含める必要がありますが、エラーが発生した場合は再インストールできます.

    Twilio


    Install via .NET CLI
    dotnet add package Twilio
    
    用途
    using Twilio;
    using Twilio.Rest.Api.V2010.Account;
    

    V 3プレビュー


    Install via .NET CLI
    dotnet add package Azure.AI.TextAnalytics --version 1.0.0-preview.3
    
    用途
    using Azure.AI.TextAnalytics;
    

    🔑 ローカルセットアップ.設定。JSON


    私は地元を除外した.設定.明白な理由のためのJSONファイル.あなたがそれらを持って一度そこにこれらのレコードを含めるようにしてください.
    Microsoft timezone documentation
    {
      "IsEncrypted": false,
      "Values": {
        "AzureWebJobsStorage": "<replace_with_your_webjobsstorage>",
        "FUNCTIONS_WORKER_RUNTIME": "dotnet",
        "TextAnalyticsApiKeyCredential":"<replace>",
        "CognitiveServicesEndpoint":"<replace>",
        "TwilioSid":"<replace>",
        "TwilioAuthToken":"<replace>",
        "NewsApiKey":"<replace>",
        "TwilioPhoneNumber":"<replace>",
        "MyPhoneNumber":"<replace_with_number_you_ant_to_send_sms_to>",
        "WEBSITE_TIME_ZONE":"<replace_with_your_timezone"
      }
    }
    

    ⚡️ ローカルの実行方法


    VSのコードでは、左の[実行]タブを選択し、上部にある[再生]ボタンを押します.

    何がrunonstartupですか?


    アプリは1から1回実行されます
    RunOnStartup=true
    
    がtrueに設定されています.生産に展開する前にremove this.

    📳 デモ


    あなたのローカルに入れた番号にテキストを取得します.設定.JSON

    VSコードコンソール出力では、あなたがそれを送った話も見ます.

    あなたもあなたの中に表示されますTwilio SMS dashboard

    🚀 アジュールへの配備方法


    Here is a written tutorial on how to Publish a Function to Azure
    My Youtube video also shows how to do this.
    トリガーでrunonstartupを削除するか、falseに設定してください.参照Microsoft doc

    ⏰ 変更は、アプリの実行時間


    こちらの線はcron式です
    public static void Run([TimerTrigger("0 30 6 * * *", RunOnStartup=true)]TimerInfo myTimer, ILogger log)
    
    時間を変更したい場合は、式の部分を変更します.here are some examples.
    "0 30 6 * * *"
    

    🖼 MMS機能


    私はアメリカにいるので、私の電話番号に画像を送ることができます.more info here , これはsend messageメソッド
    static void SendMessage (string fromNumber, string toNumber, string articleUrl, string articleTitle, string imageUrl )
    
    あなたが私たちやカナダの外にいる場合は、これを削除する自由を感じる.
    イメージが記事URLを持たないならば、それはaにデフォルトですstock photo I got from Unsplash

    🗞 あなたのニュースフィードを微調整します


    ニュースAPIから返されたJSONを微調整できますthese parameters 単にNewsapiEndpointurlの変数を追加/削除/編集
    
    // NEWS API Search parameters and URL
    string searchKeyword = "Covid";
    string sortBy = "relevancy";
    string pageSize = "100";
    string searchLanguage = "en";
    string fromDate = DateTime.Today.AddDays (-1).ToString ("yyyy-MM-dd");
    var newAPIEndpointURL = $"https://newsapi.org/v2/everything?from={fromDate}&sortBy={sortBy}&pageSize={pageSize}&language={searchLanguage}&q={searchKeyword}&apiKey={newsApiKey}";
    

    👷🏽‍♀️ 既知の問題点と改善領域

  • 送信された物語のいくつかは、必ずしも肯定的ではないが、彼らは“肯定的なテスト”または“より良い”のような言葉を含むので、彼らは肯定的な感情として返されます.感情のラベリング方法への調整とテキスト分析のより多くを探索することは、これをよりよくすることができました.以下の例を追加しました.
  • 私は非常に長いので、私はベストプラクティス(OOPのデザインとエラー処理)に従うことができないかもしれない知っているので、私はプログラミングされていない、私はより多くの練習と経験を得るように私はそれを改善しようとします.
  • 私はこれを得ていたTwilio error 特定の記事では、彼らのイメージサイズのために、私は記事イメージサイズをチェックする方法を実装しました
  • static double GetMediaFileSize (string imageUrl) {
                var fileSizeInMegaByte = 0.0;
                var webRequest = HttpWebRequest.Create (imageUrl);
                webRequest.Method = "HEAD";
    
                using (var webResponse = webRequest.GetResponse ()) {
                    var fileSize = webResponse.Headers.Get ("Content-Length");
                    fileSizeInMegaByte = Math.Round (Convert.ToDouble (fileSize) / 1024.0 / 1024.0, 2);
                }
    
                return fileSizeInMegaByte;
            }
    
    イメージが4.9 MBより大きい場合、私は、私が知っているデフォルトイメージに記事イメージを正しくサイズをつけると決めました.ここでの改善は、デフォルトのものに変更する代わりにイメージをリサイズすることです.

    💙 ありがとう

  • atと驚くべきコミュニティTwilio . あなたが参加したいならば、ここにあります😊).
  • 電源投入newsapi.org
  • Triilioこのプロジェクトに取り組むクレジットを提供する
  • ストックフォトAbsolutVision
  • 👀 他の例