2016-07-28 3 views
2

Ich wollte Dokument/Bild herunterladen (Dokument/Bild ist im Internet und ich gebe Weg davon). Aber es funktioniert nicht .. Wie auch immer, wenn ich nur den Anhang Teil kommentieren, kann ich "Hallo" von BOT bekommen.Herunterladen der Datei (pdf/Bild) von der Verwendung von Microsoft Bot Framework

Ermöglicht haben die Controller wie diese

[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); 
    } 

    } 

Antwort

2

Sie haben Fehler im Code nach dieser Zeile Code

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

Sie fügen die Anlagen der Aktivität Objekt statt Antwort. Sie erhalten "Hi" als Antwort, weil Sie die Anhänge nicht hinzugefügt haben Antwort Referenz.

Ich habe Ihren Code geändert, es funktioniert und zeigte Bild auf Bot Framework Emulator erfolgreich.

-Code

 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

Danke, es funktioniert gut ... – Sharad

1

Sie wahrscheinlich auf der Anlage, um eine Null-Referenz Ausnahme bekommen. Haben Sie nach Ausnahmen gesucht?

Versuchen:

reply.Attachments = new List < Anhang>();

+0

keine Entschuldigung, arbeitet sich nicht. – Sharad

+0

Erhalten Sie irgendwelche Ausnahmen? – Lars

+0

Es gab einen Fehler in meinem Abschlag. der "Anhang" fehlte in der neuen Zeile. – Lars

Verwandte Themen