Microsoft Project Oxford + Telegram Bot APIを試した方法

名前が示すように、Microsoft Project OxfordやTelegram APIなどのことになると思います。



Microsoft Project Oxfordとは何ですか?アクセシブルな形式の既製のREST APIのセットは、開発者がマシンビジョンアルゴリズム、自然言語分析、およびアプリケーションで使用するための音声認識のフルパワーを提供します。 REST APIの形式でサービスを利用できるため、Microsoftが提供するものに限らず、任意のプラットフォームでお好みの開発技術を使用してサービスを使用できることに注意してください。 詳細はこちらまたはこちら



Telegram Bot API-( 多くの人が知っていると思います )知らないここに来ています



私が最初に思いついたのは、写真に写っている人物の年齢と性別を判断するボットです。 これを行うには、Face APIとAPIキーが必要です。これらはすべて、 公式Webサイトで入手できます。



それでは、始めましょう(これについては多くの情報があるので、ボットの作成方法については説明しません)。 ボットを登録し、ウェブフックし、APIキーを受け取った後、書き込みへの道を切り開きます。



私はPHPで書くことにしました。 なんで? 悪魔に惑わされた



1)ユーザーからメッセージを受け取ります:



require_once '/home/edalqrmq/php/HTTP/Request.php'; define('BOT_TOKEN', 'Token'); define('API_URL', 'https://api.telegram.org/bot'.BOT_TOKEN.'/'); define('FILE_URL', 'https://api.telegram.org/file/bot'.BOT_TOKEN.'/');//     $content = file_get_contents("php://input"); $update = json_decode($content, true); $chatID = $update["message"]["chat"]["id"];
      
      





このJSONのようなもの:



 { "update_id":3405704853232, _"message":{ "message_id":238, "from":{ "id":138183417332, "first_name":"Kirill", "last_name":"Dudka" }, "chat":{ "id":1381834173, "first_name":"Kirill", "last_name":"Dudka", "type":"private" }, "date":1461168940323, "photo":[ { "file_id":"AgADAgADw6gxG_mCPAjHE7knq2P_UUJfLyLw4AAgI", "file_size":1211, "width":90, "height":67 }, { "file_id":"AgADAgADw6gxG_mCPAjHE7knDjERzAUtSA0ABGwI", "file_size":16846, "width":320, "height":240 }, { "file_id":"AgADAgADw6gxG_mCPAjHE7knBB_ZFZmQI", "file_size":55547, "width":800, "height":600 } ] } }
      
      







2)写真を確認し、画像へのリンクを作成します。



 if($update["message"]["photo"]){ $photoId = $update["message"]["photo"]["2"]["file_id"]; $url_json = file_get_contents(API_URL."getFile?file_id=".$photoId); $massURL = json_decode($url_json, true); $photoURL = FILE_URL.$massURL["result"]["file_path"]; }
      
      





3)次に、分析のために画像を送信する必要があります。詳細はこちらをご覧ください



 $req = &new HTTP_Request('https://api.projectoxford.ai/face/v1.0/detect'); $req->setMethod(HTTP_REQUEST_METHOD_POST); $req->addHeader('Content-Type','application/json'); $req->addHeader('Ocp-Apim-Subscription-Key','key'); $req->addQueryString('returnFaceId', 'true'); $req->addQueryString('returnFaceLandmarks', 'false'); $req->addQueryString('returnFaceAttributes', 'age,gender,smile');//     $req->setBody('{"url":"'.$photoURL.'"}');
      
      





応答として、次のようなものが得られます。



 Pragma: no-cache Cache-Control: no-cache Date: Wed, 20 Apr 2016 18:31:59 GMT X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Content-Length: 143 Content-Type: application/json; charset=utf-8 Expires: -1 [ { "faceId": "a194a7b3-7e86-46fc-9b73-166e09127546581b", "faceRectangle": { "top": 80, "left": 24, "width": 162, "height": 162 }, "faceAttributes": { "age": 23.3 } } ]
      
      







4)ケースが小さい場合、データをユーザーに送信します。



 try { $req->sendRequest(); $face_json = $req->getResponseBody(); $massFace = json_decode($face_json, true); $age = $massFace["0"]["faceAttributes"]["age"]; $gender_En = $massFace["0"]["faceAttributes"]["gender"]; if(!$massFace["0"]["faceAttributes"]){ $sendto = API_URL."sendmessage?chat_id=".$chatID."&text= ,    "; } else{ if($gender_En=="male"){ $gender = ""; } else{ if($gender_En=="female"){ $gender = ""; } } $sendto = API_URL."sendmessage?chat_id=".$chatID."&text= : ".$gender." : ".$age; } } catch (HttpException $ex) { echo $ex; } } else { $sendto = API_URL."sendmessage?chat_id=".$chatID."&text=  "; } file_get_contents($sendto);
      
      





実際、これですべてです。最終的には次の図が得られました。



画像



そのため、1時間とコーヒーが必要でした。 ボットは、最初に見つかった人物に関する情報のみを表示し、販売用のボットを作成するタスクを設定しませんでした( 現時点では )。MicrosoftProject Oxfordは注目に値する興味深い十分なAPIです。



どうもありがとう。



Microsoft Project OxfordとCを使用した性別と年齢の定義#

ニューロンが一緒にいるように!



All Articles