2016-07-28 8 views
2

私はドキュメント/イメージをダウンロードしたいと思いました(ドキュメント/イメージはインターネット上にあり、私はそのパスを与えています)。しかし、それは働いていない..私はちょうど添付ファイルの部分をコメントすれば、私はBOTから "こんにちは"を得ることができた。Microsoftボットフレームワークを使用してファイル(pdf/image)をダウンロード

は、あなたはおそらく添付ファイルにnull参照の例外を取得しているこの

[BotAuthentication] 
    public class MessagesController : ApiController 
    { 
    /// <summary> 
    /// POST: api/Messages 
    /// Receive a message from a user and reply to it 
    /// </summary> 
    public async Task<HttpResponseMessage> Post([FromBody]Activity activity) 
    { 

       ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl)); 
       Activity reply = activity.CreateReply("Hi"); 
       activity.Attachments.Add(new Attachment() 
       { 
        ContentUrl = "https://upload.wikimedia.org/wikipedia/en/a/a6/Bender_Rodriguez.png", 
        ContentType = "Image/png", 
        Name = "Bender_Rodriguez.png" 
       }); 

       await connector.Conversations.ReplyToActivityAsync(reply); 
    } 

    } 

答えて

2

コード

Activity reply = activity.CreateReply("Hi"); 

のこのラインは、あなたが代わりに返信活動オブジェクトに添付ファイルを追加した後にあなたのコード内の間違いをしました。あなたはこんにちは "という名前の添付ファイルをへの添付ファイルに追加していないので、それに対応しています。

私はあなたのコードを変更しました。それは正常に動作し、Bot Framework Emulator上の画像を正常に表示しました。

コード

 public async Task<HttpResponseMessage> Post([FromBody]Activity activity) 
    { 
     ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl)); 
     Activity reply = activity.CreateReply("Hi"); 
     reply.Recipient = activity.From; 
     reply.Type = "message"; 
     reply.Attachments = new List<Attachment>(); 
     reply.Attachments.Add(new Attachment() 
     { 
      ContentUrl = "https://upload.wikimedia.org/wikipedia/en/a/a6/Bender_Rodriguez.png", 
      ContentType = "image/png", 
      Name = "Bender_Rodriguez.png" 
     }); 

     await connector.Conversations.ReplyToActivityAsync(reply); 
     //var reply = await connector.Conversations.SendToConversationAsync(replyToConversation); 
     return new HttpResponseMessage(System.Net.HttpStatusCode.Accepted); 
    } 

-Kishore

+0

おかげでうまくいきました... – Sharad

1

のようなコントローラを持っています。あなたは例外をチェックしましたか?

試してみてください。

reply.Attachments =新しいリスト<添付資料>();

+0

申し訳ありませんいいえ、そのは動作していません。 – Sharad

+0

例外はありますか? – Lars

+0

私のマークダウンに間違いがありました。新しい行に「添付ファイル」がありませんでした。 – Lars

関連する問題