クラウドAI開発講座進捗報告- 7週目
これの続き
さあそろそろ8月終わりの締め切りが近づいてきました。
学校の夏休み課題、卒論等、8月の終わりは修羅場と化しそうなのは目に見えています。
そんな修羅場で確実に倒すのに時間がかかりそうな敵はこいつです(いい意味で!)。
なのである程度攻略のめどをつけておきたいわけです。
というわけで今週の進捗です!!!
なんだかブログ書くのが楽しくなってきてちょっとテンション高めです笑。
やったこと
1. Teamsで画像を読み込めないエラー
emulator上では読み込めてるんだけど、teams上では読み取れないっていう現象に陥っていた。
メンターさんが解決してくださった。
emulator上とteams上で画像の形式が違うっぽくて、専用のコードに書き換えたらできた!
manifest.jsonにsupportFiles=trueと追加する必要があります。
コードは以下参照
public async Task<List<string>> getPictureUrls()//pictureのstreamを取得する
{
List<string> urls = new List<string>();
foreach( Attachment attachment in turnContext.Activity.Attachments)
{
bool messageWithFileDownloadInfo = attachment.ContentType == FileDownloadInfo.ContentType;
if (messageWithFileDownloadInfo)
{
var file = turnContext.Activity.Attachments[0];
var fileDownload = JObject.FromObject(file.Content).ToObject<FileDownloadInfo>();
string filePath = Path.Combine("Files", file.Name);//保存先
var client = _clientFactory.CreateClient();
var response = await client.GetAsync(fileDownload.DownloadUrl);
using (var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None))
{
await response.Content.CopyToAsync(fileStream);
urls.Add(filePath);
}
}
}
return urls;
}
これでできたんだけど今度はAzureのwebappにデプロイしたら動かなくなった。
これもメンターさんが解決してくださった。本当にありがたい!
webappにデプロイするファイルの中にFilesフォルダが含まれておらず、高度なツール>CMDからディレクトリにアクセスし、filesフォルダにアクセスすることで動くことが確認できた。
2. リアクションの取得
teamsのリアクション(いいねとか、ハートとか)を取得したかったので公式ドキュメントでしらべるとできるみたい。ただいろいろ調べたがどのメッセージに対してのリアクションなのかは判断できなくて単純にアクションに対応した文字列が取得できるだけ(たぶん)。
コードはこんな感じ。
public class TeamsFileUploadBot : TeamsActivityHandler
{
protected override async Task OnMessageReactionActivityAsync(ITurnContext<IMessageReactionActivity> turnContext, System.Threading.CancellationToken cancellationToken)
{
//リアクションに対応した文字列取得
String reactType = turnContext.Activity.ReactionsAdded[0].Type;
}
}
3. コーディング
今の進捗はこんな感じです。
だいぶできてきましたね。完成度は70%くらいでしょうか。
さすがに何作ってるかはばれそう。
来週の予定
コーディング!!とりあえず基本的な機能は来週中に全部完成させたい。