2
私はBOTのイントロを提供しようとしています。ユーザーが会話/連絡先リストに追加されたとき。 ActivityTypes.ConversationUpdateメッセージタイプを処理してみました。それはスカイプでは機能しません。すべてのチャンネルで動作するはずの共通の方法があります。ボットが会話/連絡先リストに追加されたことを確認する方法はありますか?
これは私が使用するコードです:事前に
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
if (activity.Type == ActivityTypes.Message)
{
// calculate something for us to return
int length = (activity.Text ?? string.Empty).Length;
// return our reply to the user
Activity reply = activity.CreateReply($"You sent {activity.Text} which was {length} characters");
await connector.Conversations.ReplyToActivityAsync(reply);
}
else if(activity.Type == ActivityTypes.ConversationUpdate)
{
StateClient stateClient = activity.GetStateClient();
BotData userData = await stateClient.BotState.GetUserDataAsync(activity.ChannelId, activity.From.Id);
if (!userData.GetProperty<bool>("SentGreeting"))
{
Activity reply = activity.CreateReply($"Hi " + activity.From.Name + ", I'm the Microsoft Bot");
userData.SetProperty<bool>("SentGreeting", true);
await stateClient.BotState.SetUserDataAsync(activity.ChannelId, activity.From.Id, userData);
await connector.Conversations.ReplyToActivityAsync(reply);
}
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}
works here 感謝。
私はあなたの問題を助けることはできませんが、あなたがそれをやろうとする方法についてもう少し精緻化すれば他のものかもしれません – gismo
@gismoは今コードを追加しました。これはエミュレータとWebチャットで動作します。スカイプでは動作しません。助言がありますか? –
ConversationUpdateイベントを受け取りますか? – Phito